Apa itu AWS Lambda? Fungsi Lambda dengan Contoh
Sebelum fungsi AWS Lambda, mari kita pahami:
Apa itu Tanpa Server?
Tanpa server adalah istilah yang umumnya mengacu pada aplikasi tanpa server. Aplikasi tanpa server adalah aplikasi yang tidak memerlukan penyediaan server apa pun dan tidak memerlukan pengelolaan 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 mengelolanya. Sebagai gantinya, Anda perlu meletakkan kode di Lambda, dan itu akan berjalan.
Di AWS Lambda kode dijalankan berdasarkan respons peristiwa di layanan AWS seperti menambah/menghapus file di bucket S3, permintaan HTTP dari Amazon Gerbang API, dll. Namun, Amazon Lambda hanya dapat digunakan untuk menjalankan tugas latar belakang.
Fungsi AWS Lambda membantu Anda berfokus pada produk inti dan logika bisnis alih-alih mengelola kontrol akses sistem operasi (OS), patching OS, penyesuaian ukuran, penyediaan, penskalaan, dsb.
Bagaimana cara kerja AWS Lambda?
Contoh AWS Lambda berikut dengan diagram blok menjelaskan cara kerja AWS Lambda dalam beberapa langkah mudah:

Langkah 1: Pertama, unggah kode AWS Lambda Anda dalam bahasa apa pun yang didukung oleh AWS Lambda. Java, Python, Go, 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 lambda AWS dijalankan, dan tidak saat lainnya.
Hal ini akan terjadi dalam skenario berikut:
- Unggah file dalam bucket S3
- Ketika URL titik akhir get/posting HTTP dipukul
- Untuk menambah/memodifikasi dan menghapus tabel Dynamo DB
- Dalam proses pengumpulan aliran data
- Notifikasi push
- Hosting situs web
- Pengiriman email
Catatan: Anda harus ingat bahwa Anda akan mengenakan biaya untuk layanan AWS hanya ketika kode AWS Lambda dijalankan, 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 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 mengonfigurasi fungsi Anda saat runtime. Itu juga cocok dengan pilihan Anda bahasa pemrograman.
Sumber acara:
Sumber peristiwa adalah layanan AWS, seperti Amazon SNS, atau layanan khusus. Fungsi pemicu ini membantu Anda 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:
Aliran log memungkinkan Anda memberi 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) Langkah 1) Buka URL AWS Lambda
Pergi ke https://aws.amazon.com/lambda/ dan Memulai
Langkah 2) Buat sebuah akun
Selanjutnya, Buat akun atau masuk dengan akun Anda yang sudah ada
Langkah 3) Edit kodenya & Klik Jalankan,
Di halaman Lambda berikutnya,
- Sunting kodenya
- Klik Jalankan
Langkah 4) Periksa keluaran
Anda akan melihat hasilnya
AWS Lambda VS AWS EC2
Berikut adalah beberapa perbedaan utama antara AWS Lambda dan EC2.
Parameters | 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 (laaS). Ini menyediakan sumber daya komputasi tervirtualisasi. |
keluwesan | Tidak menawarkan fleksibilitas untuk masuk ke instance komputasi. Memungkinkan Anda memilih sistem operasi atau runtime bahasa yang disesuaikan. | Menawarkan fleksibilitas untuk memilih berbagai contoh, sistem operasi khusus, patch keamanan, dan jaringan, dll. |
proses instalasi | Anda harus memilih lingkungan tempat Anda ingin menjalankan kode dan memasukkan kode 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 | Ini dibatasi pada beberapa bahasa. | Tidak ada batasan lingkungan. |
AWS Lambda VS AWS Elastic Beanstalk
Berikut adalah beberapa perbedaan utama antara AWS Lambda dan Elastic Beanstalk.
Parameters | Pohon Kacang Elastis AWS | 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 instans EC2 yang optimal sesuai dengan aplikasi Anda. | Anda tidak dapat memilih sumber daya AWS, seperti jenis instans 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 aplikasi seperti:
- Membantu Anda untuk 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
- Bagian belakang yang dapat diskalakan (aplikasi seluler, perangkat lot)
- Membantu Anda menjalankan logika backend sisi server
- Memungkinkan Anda memfilter dan Mengubah data
Praktik terbaik fungsi Lambda
Berikut adalah beberapa praktik terbaik AWS Fungsi Lambda:
- Gunakan “batas waktu” yang tepat.
- Manfaatkan fungsi penyimpanan lokal berukuran 500MB di folder /temp
- Meminimalkan penggunaan kode start-up yang tidak berhubungan langsung dengan pemrosesan event saat ini.
- Anda harus menggunakan pemantauan CloudWatch bawaan pada fungsi Lambda Anda untuk melihat dan mengoptimalkan latensi permintaan.
Kapan tidak menggunakan AWS Lambda
Berikut ini adalah situasi di mana Lambda jelas bukan pilihan ideal:
- Tidaklah tepat menggunakan paket perangkat lunak atau aplikasi AWS Lambda yang mengandalkan panggilan yang mendasarinya Windows RPC
- Jika digunakan untuk aplikasi perangkat lunak khusus dengan perjanjian lisensi seperti pemrosesan dokumen MS-Office, Oracle basis data, dll.
- AWS Lambda tidak boleh digunakan untuk proses perangkat keras khusus seperti akselerasi GPU, 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 langsung dengan WYSIWEditor YG di konsol.
- Anda dapat menggunakannya sebagai plugin untuk Eclipse dan Visual Studio.
- Karena arsitekturnya tanpa server, Anda tidak perlu khawatir tentang pengelolaan atau penyediaan 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 melakukannya untuk waktu komputasi yang diperlukan, hanya saat kode Anda berjalan.
- Anda dapat memantau kinerja kode Anda secara real time melalui CloudWatch.
- Ini memungkinkan Anda menjalankan kode tanpa menyediakan atau mengelola server lain
- Membantu Anda mengeksekusi kode hanya bila diperlukan
- 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 peristiwa dan pengatur waktu eksternal; dapat digunakan untuk penjadwalan.
- Fungsi Lambda tidak memiliki kewarganegaraan 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 infrastrukturnya, sehingga Anda tidak dapat menginstal perangkat lunak tambahan apa pun jika kode Anda memerlukannya.
- Eksekusi serentak dibatasi hingga 100
- AWS Lambda sepenuhnya bergantung pada AWS untuk infrastrukturnya; Anda tidak dapat menginstal perangkat lunak tambahan apa pun jika kode Anda memintanya.
- Volume memorinya dapat bervariasi antara 128 hingga 1536 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 hanya 5 menit.
Kesimpulan
- Tanpa server adalah istilah yang umumnya mengacu pada aplikasi tanpa server.
- AWS Lambda adalah salah satu layanan komputasi tanpa server. Oleh karena itu, Anda tidak perlu khawatir tentang sumber daya AWS mana yang akan diluncurkan, atau bagaimana sumber daya tersebut akan mengelolanya.
- Fungsi adalah program atau skrip yang berjalan di Lambda tanpa server AWS.
- Runtime memungkinkan fungsi dalam berbagai bahasa yang berjalan pada lingkungan eksekusi dasar yang sama.
- Sumber peristiwa adalah layanan AWS, seperti Amazon SNS, atau layanan khusus.
- Lapisan Lambda adalah mekanisme distribusi penting untuk perpustakaan, runtime kustom, dan dependensi fungsi penting lainnya.
- Aliran log memungkinkan Anda memberi anotasi pada kode fungsi Anda dengan pernyataan logging khusus yang membantu Anda menganalisis alur eksekusi dan kinerja fungsi Lambda Anda.
- AWS Lambda adalah Platform sebagai Layanan (PaaS). Ini membantu Anda menjalankan dan mengeksekusi kode backend Anda.
- AWS EC2 Adalah Infrastruktur sebagai Layanan (laaS). Ini menyediakan sumber daya komputasi tervirtualisasi.
- 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.
- AWS Lambda membantu Anda untuk itu proses ETL.
- Praktik terbaik fungsi Lambda di AWS adalah menggunakan “batas waktu” yang tepat.
- Tidaklah tepat menggunakan paket perangkat lunak atau aplikasi AWS Lambda yang mengandalkan panggilan yang mendasarinya Windows RPC
- AWS Lambda adalah alat yang sangat fleksibel.
- Alat AWS Lambda tidak cocok untuk proyek kecil.
- Peristiwa umum yang akan dipicu saat Anda menggunakan AWS Lambda adalah Menyisipkan, memperbarui, dan menghapus data tabel Dynamo DB.