AWS Lambda - Ikhtisar
AWS Lambdaadalah layanan yang melakukan komputasi tanpa server, yang melibatkan komputasi tanpa server apa pun. Kode dijalankan berdasarkan respons kejadian di layanan AWS seperti menambahkan / menghapus file di S3 bucket, memperbarui tabel Amazon dynamo dB, permintaan HTTP dari Amazon API gateway dll.
Untuk bekerja dengan AWS Lambda, kami hanya perlu memasukkan kode di layanan AWS Lambda. Semua tugas dan sumber daya lainnya seperti infrastruktur, sistem operasi, pemeliharaan server, pemantauan kode, log, dan keamanan ditangani oleh AWS.
AWS Lambdamendukung bahasa seperti Java, NodeJS, Python, C # dan Go. Perhatikan bahwa AWS Lambda hanya akan berfungsi dengan layanan AWS.
Apa itu AWS Lambda?
Definisi AWS Lambda seperti yang diberikan oleh dokumentasi resminya adalah sebagai berikut -
AWS Lambda adalah layanan komputasi yang memungkinkan Anda menjalankan kode tanpa menyediakan atau mengelola server. AWS Lambda mengeksekusi kode Anda hanya saat diperlukan dan menskalakan secara otomatis, dari beberapa permintaan per hari hingga ribuan per detik. Anda hanya membayar untuk waktu komputasi yang Anda gunakan - tidak ada biaya saat kode Anda tidak berjalan.
Bagaimana AWS Lambda Bekerja?
Diagram blok yang menjelaskan cara kerja AWS Lambda dalam lima langkah mudah ditunjukkan di bawah ini -
Step 1 − Unggah kode lambda AWS dalam bahasa apa pun yang didukung AWS lambda, yaitu NodeJS, Java, Python, C #, dan Go.
Step 2 − Ini adalah beberapa layanan AWS tempat AWS lambda dapat dipicu.
Step 3 −AWS Lambda yang memiliki kode unggahan dan detail acara tempat pemicunya terjadi. Misalnya, peristiwa dari Amazon S3, Amazon API Gateway, Dynamo dB, Amazon SNS, Amazon Kinesis, CloudFront, Amazon SES, CloudTrail, aplikasi seluler, dll.
Step 4 − Jalankan Kode AWS Lambda hanya ketika dipicu oleh layanan AWS di bawah skenario seperti -
- Pengguna mengunggah file dalam S3 bucket
- http get / post URL titik akhir terkena
- data ditambahkan / diperbarui / dihapus dalam tabel dB dinamo
- pemberitahuan push
- pengumpulan aliran data
- hosting situs web
- pengiriman email
- aplikasi seluler, dll.
Step 5 − Ingat bahwa AWS hanya mengenakan biaya saat kode lambda AWS dijalankan, dan bukan sebaliknya.
Keuntungan menggunakan AWS Lambda
AWS Lambda menawarkan banyak manfaat saat Anda mengerjakannya. Bagian ini membahasnya secara rinci -
Kemudahan bekerja dengan kode
AWS Lambda memberi Anda infrastruktur untuk mengunggah kode Anda. Ini menangani pemeliharaan kode dan memicu kode setiap kali peristiwa yang diperlukan terjadi. Ini memungkinkan Anda untuk memilih memori dan batas waktu yang diperlukan untuk kode.
AWS Lambda juga dapat menjalankan permintaan paralel sesuai pemicu peristiwa.
Ketentuan Log
AWS Lambda memberikan detail berapa kali kode dieksekusi dan waktu yang dibutuhkan untuk eksekusi, memori yang dikonsumsi, dll. AWS CloudWatch mengumpulkan semua log, yang membantu dalam memahami aliran eksekusi dan dalam proses debug kode.
Penagihan berdasarkan Penggunaan
Penagihan AWS Lambda dilakukan atas penggunaan memori, permintaan dibuat dan eksekusi, yang ditagih dengan peningkatan minimum 100 md. Jadi untuk eksekusi 500ms, penagihan akan dilakukan setelah setiap 100ms. Jika Anda menentukan kode lambda AWS untuk dieksekusi dalam 500 md dan waktu yang dibutuhkan untuk mengeksekusinya hanya 200 md, AWS akan menagih Anda hanya untuk waktu yang dibutuhkan, yaitu eksekusi 200 md, bukan 500 md. AWS selalu menagih untuk waktu eksekusi yang digunakan. Anda tidak perlu membayar jika fungsi tersebut tidak dijalankan.
Dukungan Multi Bahasa
AWS Lambda mendukung bahasa populer seperti Node. js, Python, Java, C # dan Go. Ini adalah bahasa yang banyak digunakan dan setiap pengembang akan merasa mudah untuk menulis kode untuk AWS Lambda.
Kemudahan pembuatan dan penerapan kode
Ada banyak opsi yang tersedia untuk Lambda untuk membuat dan menerapkan kode. Untuk menulis kode Anda, Anda dapat menggunakan editor online AWS, Visual Studio IDE, atau Eclipse IDE. Ini juga memiliki dukungan untuk kerangka kerja tanpa server yang memudahkan penulisan dan penerapan kode AWS Lambda. Selain konsol AWS, kami memiliki AWS-cli untuk membuat dan menerapkan kode.
Fitur lainnya
Anda dapat menggunakan AWS Lambda secara gratis dengan mendapatkan login ke tingkat gratis AWS. Ini memberi Anda layanan gratis selama 1 tahun. Lihat layanan gratis yang ditawarkan oleh tingkat gratis AWS.
Kerugian menggunakan AWS Lambda
Terlepas dari banyak keunggulan, AWS Lambda memiliki kekurangan berikut -
Tidak cocok untuk proyek kecil.
Anda perlu menganalisis kode Anda dengan cermat dan memutuskan memori dan batas waktu. Jika fungsi Anda membutuhkan lebih banyak waktu daripada yang dialokasikan, itu akan dihentikan sesuai batas waktu yang ditentukan di atasnya dan kode tidak akan sepenuhnya dieksekusi.
Karena AWS Lambda bergantung sepenuhnya pada AWS untuk infrastruktur, Anda tidak dapat menginstal perangkat lunak tambahan apa pun jika kode Anda menuntutnya.
Peristiwa yang Memicu AWS Lambda
Peristiwa yang dapat memicu AWS Lambda adalah sebagai berikut -
- Masuk ke objek S3
- Penyisipan, pembaruan dan penghapusan data dalam tabel Dynamo DB
- Pemberitahuan push dari SNS
- GET / POST panggilan ke API Gateway
- Modifikasi header pada penampil atau permintaan / respons asal di CloudFront
- Masukkan entri di aliran data AWS Kinesis
- Catat riwayat di CloudTrail
Kasus Penggunaan AWS Lambda
AWS Lambda adalah layanan komputasi yang terutama digunakan untuk menjalankan proses latar belakang. Ini dapat terpicu saat digunakan dengan layanan AWS lainnya. Daftar layanan AWS tempat kami dapat menggunakan AWS Lambda diberikan di bawah ini -
Objek S3 dan AWS Lambda
Amazon S3 meneruskan detail peristiwa ke AWS Lambda ketika ada file yang diunggah di S3. Detail unggahan atau penghapusan file atau pemindahan file diteruskan ke AWS Lambda. Kode di AWS Lambda dapat mengambil langkah yang diperlukan ketika menerima detail acara. Sebagai Contoh membuat thumbnail dari gambar yang dimasukkan ke S3.
DynamoDB dan AWS Lambda
DynamoDB dapat memicu AWS Lambda saat ada data yang ditambahkan, diperbarui, dan dihapus di tabel. Peristiwa AWS Lambda memiliki semua detail tabel AWS DynamoDB tentang penyisipan / pembaruan atau penghapusan.
API Gateway dan AWS Lambda
API Gateway dapat memicu AWS Lambda pada metode GET / POST. Kami dapat membuat formulir dan membagikan detail dengan titik akhir API Gateway dan menggunakannya dengan AWS Lambda untuk pemrosesan lebih lanjut, misalnya, membuat entri data di tabel DynamoDB.
SNS dan AWS Lambda
SNS digunakan untuk pemberitahuan push, mengirim SMS, dll. Kita dapat memicu AWS lambda ketika ada pemberitahuan push yang terjadi di SNS. Kami juga dapat mengirim SMS ke nomor telepon dari AWS Lambda ketika menerima pemicu.
Acara Terjadwal dan AWS Lambda
Acara Terjadwal dapat digunakan untuk pekerjaan cron. Ini dapat memicu AWS Lambda untuk menjalankan tugas dengan pola waktu reguler.
CloudTrail dan AWS Lambda
CloudTrail dapat membantu dalam memantau log di akun. Kami dapat menggunakan AWS Lambda untuk memproses lebih lanjut log CloudTrail.
Kinesis dan AWS Lambda
Kinesis digunakan untuk menangkap / menyimpan data pelacakan waktu nyata yang berasal dari klik situs web, log, umpan media sosial, dan pemicu AWS Lambda dapat melakukan pemrosesan tambahan pada log ini.
CloudFront dan Lambda @ Edge
CloudFront adalah jaringan pengiriman konten tempat Anda dapat meng-host situs web Anda dan Lambda @ Edge dapat digunakan untuk memproses header yang berasal dari permintaan penonton, permintaan asal, respons asal, dan respons penonton. Modifikasi tajuk mencakup tugas-tugas seperti memodifikasi data cookie, penulisan ulang URL, digunakan untuk pengujian AB untuk mengubah respons yang dikirim ke pengguna kembali, menambahkan info tajuk tambahan untuk tujuan keamanan, dll.