Apa itu AWS Lambda? Fungsi Lambda dengan Contoh

⚡ Ringkasan Cerdas

AWS Lambda adalah platform komputasi tanpa server berbasis peristiwa dari Amazon Layanan Web yang menjalankan kode Anda sebagai respons terhadap pemicu, secara otomatis menangani penyediaan, penskalaan, dan manajemen server sehingga Anda hanya fokus pada logika bisnis.

  • ☁️ Model tanpa server: AWS Lambda menjalankan kode tanpa menyediakan atau mengelola server, sehingga menghilangkan kebutuhan untuk melakukan patching sistem operasi, penskalaan, dan perencanaan kapasitas.
  • Eksekusi berbasis peristiwa: Fungsi dipicu dari layanan AWS seperti S3, DynamoDB, API Gateway, dan SNS, hanya berjalan ketika suatu peristiwa terjadi.
  • 🧩 Dukungan bahasa: Lambda mendukung Node.js, Python, Java, Go, C#, dan Ruby, ditambah runtime khusus untuk bahasa lain.
  • 💰 Bayar per penggunaan: Billing hanya berlaku selama kode dieksekusi, diukur dalam milidetik, dengan tingkatan gratis bulanan permanen sebanyak satu juta permintaan.
  • Konsep inti: Fungsi, runtime, sumber peristiwa, lapisan, dan aliran log menentukan bagaimana Lambda mengeksekusi dan mengelola kode.
  • 🤖 Bantuan AI: GitHub Copilot dan Amazon Q menghasilkan kode Lambda, sementara Lambda mengatur inferensi AI generatif melalui Amazon Batuan dasar.

Apa itu AWS Lambda?

Sebelum menjelajahi AWS Lambda, ada baiknya memahami apa arti serverless.

Apa itu Tanpa Server?

Serverless adalah istilah yang umumnya merujuk pada aplikasi tanpa server. Aplikasi tanpa server adalah aplikasi yang tidak memerlukan penyediaan server dan tidak mengharuskan Anda untuk mengelola server.

Apa itu AWS Lambda?

AWS Lambda adalah platform komputasi tanpa server berbasis peristiwa yang disediakan oleh Amazon sebagai bagian dari Amazon Layanan Web. Oleh karena itu, Anda tidak perlu khawatir tentang sumber daya AWS mana yang akan diluncurkan, atau bagaimana Anda akan mengelolanya. Sebaliknya, Anda hanya perlu meletakkan kode di Lambda, dan kode tersebut akan berjalan.

Di AWS Lambda, kode dieksekusi berdasarkan respons dari peristiwa di layanan AWS seperti menambahkan atau menghapus file di bucket S3, permintaan HTTP dari Amazon API Gateway, dan acara serupa lainnya. Namun, Amazon Lambda hanya dapat digunakan untuk menjalankan tugas latar belakang.

Fungsi AWS Lambda membantu Anda untuk fokus pada produk inti dan logika bisnis Anda, alih-alih mengelola kontrol akses sistem operasi (OS), patching OS, penyesuaian ukuran yang tepat, penyediaan, penskalaan, dan sebagainya.

Bagaimana cara kerja AWS Lambda?

Contoh AWS Lambda berikut dengan diagram blok menjelaskan cara kerja AWS Lambda dalam beberapa langkah mudah:

Diagram Blok AWS Lambda

Langkah 1: Pertama, unggah kode AWS Lambda Anda dalam bahasa apa pun yang didukung oleh AWS Lambda. Java, PythonGo dan C# adalah beberapa bahasa yang didukung oleh fungsi AWS Lambda.

Langkah 2: Ini adalah beberapa layanan AWS yang memungkinkan Anda memicu AWS Lambda.

Langkah 3: AWS Lambda membantu Anda mengunggah kode dan detail peristiwa yang memicunya.

Langkah 4: Menjalankan kode AWS Lambda ketika dipicu oleh layanan AWS.

Langkah 5: AWS hanya mengenakan biaya saat kode AWS Lambda dieksekusi, dan tidak sebaliknya.

Hal ini akan terjadi dalam skenario berikut:

  • Unggah file dalam bucket S3
  • Saat endpoint HTTP get/post URL terkena
  • Untuk menambahkan, memodifikasi, dan menghapus tabel Dynamo DB
  • Dalam proses pengumpulan aliran data
  • Notifikasi push
  • Hosting situs web
  • Pengiriman email

Catatan: Anda perlu ingat bahwa Anda hanya akan dikenakan biaya untuk layanan AWS saat kode AWS Lambda dieksekusi, jika tidak, Anda tidak perlu membayar apa pun.

Peristiwa yang Memicu AWS Lambda

Berikut adalah peristiwa yang akan dipicu saat Anda menggunakan AWS Lambda.

  • Menyisipkan, memperbarui, dan menghapus data dalam tabel Dynamo DB
  • Untuk memasukkan pemberitahuan push di SNS
  • Untuk mencari riwayat log di CloudTrail
  • Masuk ke objek S3
  • DynamoDB dapat memicu AWS Lambda setiap kali ada data yang ditambahkan, diubah, dan dihapus dalam tabel.
  • Membantu Anda menjadwalkan acara untuk melaksanakan tugas pada pola waktu yang teratur.
  • Modifikasi pada objek di bucket S3
  • Pemberitahuan dikirim dari Amazon SNS.
  • AWS Lambda dapat digunakan untuk memproses log CloudTrail.
  • API Gateway memungkinkan Anda memicu AWS Lambda pada metode GET/POST.

AWS Lambda Concepts

Fungsi: Fungsi adalah program atau skrip yang berjalan di AWS Lambda. Lambda meneruskan peristiwa pemanggilan ke dalam fungsi Anda, yang memproses suatu peristiwa dan mengembalikan responsnya.

Waktu tayang: Runtime memungkinkan fungsi dalam berbagai bahasa yang berjalan pada lingkungan eksekusi dasar yang sama. Ini membantu Anda mengkonfigurasi fungsi Anda di runtime. Ini juga sesuai dengan pilihan Anda. bahasa pemrograman.

Sumber acara: Sumber peristiwa adalah layanan AWS, seperti Amazon SNS, atau layanan khusus. Pemicu ini membantu fungsi tersebut menjalankan logikanya.

Lapisan Lambda: Lapisan Lambda adalah mekanisme distribusi penting untuk perpustakaan, runtime kustom, dan dependensi fungsi penting lainnya. Komponen AWS ini juga membantu Anda mengelola kode fungsi pengembangan secara terpisah dari kode dan sumber daya yang tidak berubah yang digunakannya.

Aliran log: Log stream memungkinkan Anda untuk menambahkan anotasi pada kode fungsi Anda dengan pernyataan logging khusus yang membantu Anda menganalisis alur eksekusi dan kinerja fungsi AWS Lambda Anda.

Cara menggunakan AWS Lambda

Sekarang, kita akan mempelajari cara menggunakan AWS Lambda dengan contoh AWS Lambda:

Langkah 1) Buka AWS Lambda URL

Pergi ke https://aws.amazon.com/lambda/ dan Mulai.

Cara menggunakan AWS Lambda

Langkah 2) Buat sebuah akun

Selanjutnya, buat akun atau masuk dengan akun Anda yang sudah ada.

Cara menggunakan AWS Lambda

Langkah 3) Edit kode dan klik Jalankan.

Di halaman Lambda berikutnya, edit kode dan klik Jalankan.

Langkah 4) Periksa keluaran

Anda akan melihat hasilnya.

Cara menggunakan AWS Lambda

AWS Lambda VS AWS EC2

Berikut beberapa perbedaan utama antara AWS Lambda dan EC2.

Parameter Teknis AWS Lambda AWS EC2
Definisi AWS Lambda adalah Platform sebagai Layanan (PaaS). Ini membantu Anda menjalankan dan mengeksekusi kode backend Anda. AWS EC2 adalah Infrastruktur sebagai Layanan (IaaS). Ia menyediakan sumber daya komputasi virtual.
keluwesan Tidak menawarkan fleksibilitas apa pun untuk masuk ke instance komputasi. Ini memungkinkan Anda untuk memilih sistem operasi atau runtime bahasa yang disesuaikan. Menawarkan fleksibilitas untuk memilih berbagai instance, sistem operasi kustom, patch keamanan, dan jaringan, dll.
proses instalasi Anda perlu memilih lingkungan tempat Anda ingin menjalankan kode dan mengirimkan kode tersebut ke AWS Lambda. Untuk pertama kalinya di EC2, Anda harus memilih OS dan menginstal semua perangkat lunak yang diperlukan lalu memasukkan kode Anda ke EC2.
Pembatasan lingkungan Hal ini terbatas pada beberapa bahasa saja. Tidak ada batasan lingkungan.

AWS Lambda vs AWS Elastic Beanstalk

Berikut beberapa perbedaan utama antara AWS Lambda dan Elastic. Beanstalk.

Parameter Teknis AWS Elastis Beanstalk AWS Lambda
Tugas utama Terapkan dan kelola aplikasi di AWS Cloud tanpa mengkhawatirkan infrastruktur yang menjalankan aplikasi tersebut. AWS Lambda digunakan untuk menjalankan dan mengeksekusi kode back-end Anda. Anda tidak dapat menggunakannya untuk menyebarkan aplikasi.
Pemilihan sumber daya AWS Ini memberi Anda kebebasan untuk memilih sumber daya AWS; misalnya, Anda dapat memilih instance EC2 yang optimal sesuai dengan aplikasi Anda. Anda tidak dapat memilih sumber daya AWS, seperti jenis instance EC2; Lambda menawarkan sumber daya berdasarkan beban kerja Anda.
Jenis sistem Ini adalah sistem yang berstatus negara. Ini adalah sistem tanpa kewarganegaraan.

Kasus Penggunaan AWS Lambda

AWS Lambda digunakan untuk berbagai macam aplikasi seperti:

  • Membantu Anda dengan proses ETL
  • Memungkinkan Anda melakukan pemrosesan file waktu nyata dan pemrosesan aliran waktu nyata
  • Gunakan untuk membuat aplikasi web
  • Gunakan dalam Amazon produk seperti Alexa Chatbots dan Amazon Gema/Alexa
  • Pemrosesan data (analisis streaming waktu nyata)
  • Pencadangan otomatis untuk tugas sehari-hari
  • Sistem back-end yang dapat diskalakan (aplikasi seluler, perangkat IoT)
  • Membantu Anda menjalankan logika backend sisi server
  • Memungkinkan Anda untuk memfilter dan mengubah data.

Praktik terbaik fungsi Lambda

Berikut beberapa praktik terbaik fungsi AWS Lambda:

  • Gunakan “batas waktu” yang tepat.
  • Manfaatkan fungsi penyimpanan lokal yang berukuran 500MB di folder /temp.
  • Minimalkan penggunaan kode startup yang tidak terkait langsung dengan pemrosesan peristiwa saat ini.
  • Anda harus menggunakan pemantauan CloudWatch bawaan pada fungsi Lambda Anda untuk melihat dan mengoptimalkan latensi permintaan.

Kapan tidak menggunakan AWS Lambda

Berikut adalah situasi-situasi di mana Lambda jelas bukan pilihan yang ideal:

  • Tidak tepat menggunakan AWS Lambda untuk paket perangkat lunak atau aplikasi yang bergantung pada pemanggilan fungsi yang mendasarinya. Windows RPC.
  • Jika digunakan untuk aplikasi perangkat lunak khusus dengan perjanjian lisensi seperti pengolah dokumen MS-Office, Oracle basis data, dll.
  • AWS Lambda tidak boleh digunakan untuk proses perangkat keras khusus seperti akselerasi GPU dan afinitas perangkat keras.

Keuntungan menggunakan AWS Lambda

Berikut adalah kelebihan/manfaat menggunakan AWS Lambda:

  • AWS Lambda adalah alat yang sangat fleksibel untuk digunakan.
  • Ini membantu Anda memberikan akses ke sumber daya, termasuk VPC.
  • Penulis berinteraksi langsung dengan WYSIWEditor YG di konsol.
  • Anda dapat menggunakannya sebagai plugin untuk Eclipse ke Visual Studio.
  • Karena ini adalah arsitektur tanpa server, Anda tidak perlu khawatir tentang mengelola atau menyediakan server.
  • Anda tidak perlu menyiapkan apa pun Mesin virtual.
  • Membantu pengembang menjalankan dan mengeksekusi respons kode terhadap peristiwa tanpa membangun infrastruktur apa pun.
  • Anda hanya perlu membayar waktu komputasi yang dibutuhkan, hanya saat kode Anda dijalankan.
  • Anda dapat memantau kinerja kode Anda secara real time melalui CloudWatch.
  • Ini memungkinkan Anda menjalankan kode Anda tanpa perlu menyediakan atau mengelola server lain.
  • Membantu Anda menjalankan kode hanya saat dibutuhkan.
  • Anda dapat menskalakannya secara otomatis untuk menangani beberapa permintaan per hari dan bahkan mendukung lebih dari ribuan permintaan per detik.
  • AWS Lambda dapat dikonfigurasi dengan bantuan pengatur waktu peristiwa eksternal untuk melakukan tugas terjadwal.
  • Fungsi Lambda di AWS harus dikonfigurasi dengan event dan timer eksternal agar dapat digunakan untuk penjadwalan.
  • Fungsi Lambda bersifat stateless sehingga dapat diskalakan dengan cepat.
  • AWS Lambda cepat sehingga akan mengeksekusi kode Anda dalam milidetik.

Keterbatasan AWS Lambda

Berikut kekurangan/kekurangan menggunakan AWS Lambda:

  • Alat AWS Lambda tidak cocok untuk proyek kecil.
  • AWS Lambda sepenuhnya bergantung pada AWS untuk infrastruktur, jadi Anda tidak dapat menginstal perangkat lunak tambahan apa pun jika kode Anda membutuhkannya.
  • Eksekusi bersamaan memiliki batasan default 1,000 per Wilayah, yang dapat ditingkatkan berdasarkan permintaan.
  • Kapasitas memorinya dapat bervariasi antara 128 MB dan 10,240 MB.
  • Permintaan acara tidak boleh melebihi 128 KB.
  • Fungsi Lambda membantu Anda menulis lognya hanya di CloudWatch. Ini adalah satu-satunya alat yang memungkinkan Anda memantau atau memecahkan masalah fungsi Anda.
  • Batas waktu eksekusi kodenya adalah 15 menit.

Pertanyaan Umum Demo Slot

AWS Lambda secara bawaan mendukung Node.js, Python, Java, Go, C#, PowerShell, dan Ruby. API Runtime dan dukungan image container memungkinkan Anda menjalankan hampir semua bahasa lain, sehingga tim jarang dibatasi oleh tumpukan teknologi pilihan mereka.

AWS Lambda menyertakan paket gratis permanen sebanyak satu juta permintaan dan 400,000 GB-detik komputasi setiap bulan. Setelah itu, Anda hanya membayar untuk permintaan dan waktu komputasi yang sebenarnya digunakan kode Anda, yang ditagih per milidetik.

Cold start adalah penundaan singkat ketika Lambda menginisialisasi lingkungan eksekusi baru untuk fungsi yang telah menganggur. Anda dapat menguranginya dengan provisioned concurrency, paket yang lebih kecil, atau SnapStart. Java fungsi.

Ya. Selain mengunggah arsip ZIP, Lambda memungkinkan Anda mengemas fungsi sebagai citra kontainer hingga 10 GB. Ini cocok untuk dependensi yang lebih besar dan pustaka pembelajaran mesin sambil tetap menjagaping model eksekusi tanpa server berbasis peristiwa yang sama.

Lambda menjalankan fungsi berbasis peristiwa yang singkat dengan penskalaan otomatis dan penagihan per milidetik. AWS Fargate menjalankan beban kerja kontainerisasi yang lebih lama tanpa perlu mengelola server. Pilih Lambda untuk respons peristiwa yang cepat dan Fargate untuk tugas kontainer yang stabil dan berjalan lama.

Ya. Lambda umumnya mendukung aplikasi AI dengan menjalankan inferensi ringan dan mengatur panggilan ke layanan seperti Amazon Bedrock dan SageMaker. Dukungan citra kontainer membantu mengemas pustaka pembelajaran mesin, sementara Lambda menangani penskalaan alur kerja AI generatif.

Ya. Kopilot GitHub menulis fungsi handler dari komentar atau nama, sementara Amazon Q Developer menambahkan bantuan yang kompatibel dengan AWS untuk kebijakan IAM, CloudFormation, dan panggilan SDK, sehingga mempercepat pengembangan serverless.

Berikan setiap fungsi peran IAM dengan hak akses minimal, simpan rahasia dalam variabel lingkungan terenkripsi atau Secrets Manager, dan tempatkan fungsi-fungsi sensitif di dalam VPC. CloudWatch dan CloudTrail kemudian mencatat aktivitas untuk pemantauan dan audit.

Ringkaslah postingan ini dengan: