AWS Lambda - Pendahuluan

AWS Lambda adalah layanan yang menangani komputasi kode Anda tanpa server apa pun. Dikatakan sebagai komputasi tanpa server. Kode dijalankan berdasarkan respons kejadian di layanan AWS seperti menambahkan / menghapus file di bucket S3, memperbarui Amazon DynamoDBtables, permintaan HTTP dari gateway Amazon Api, dll.

Kode AWS Lambda dapat ditulis di NodeJS, Java, C #, Python, dan Go. Bab ini akan membahas secara detail tentang membuat fungsi AWS Lambda di konsol AWS.

Konsol AWS

Masuk ke Konsol AWS di tautan https://aws.amazon.com/console. Setelah Anda masuk ke dalamnya, ini akan mengarahkan Anda ke layar tempat layanan AWS ditampilkan.

Contoh: Membuat Fungsi

Biarkan kami memahami fungsionalitas Konsol AWS dengan bantuan Contoh. Klik Lambda (ditandai di atas), itu akan dialihkan untuk membuat fungsi seperti yang ditunjukkan di bawah ini -

Klik Create function tombol dan layar menampilkan detail berikut -

Perhatikan bahwa, secara default, opsinya adalah Author from scratch. Opsi ini memungkinkan Anda untuk menulis kode Lambda dari awal. Ini hanya akan memiliki fungsi sederhana denganhello world pesan.

Opsi kedua Blue prints memiliki detail berikut.

Ini memberikan detail kode yang sudah ditulis untuk beberapa layanan aws dalam bahasa yang tersedia dengan AWS Lambda. Jika Anda perlu menulis kode AWS Lambda untuk layanan apa pun yang dapat Anda check inblue prints dan memulai.

Opsi ketiga Serverless Application Repository memiliki pengaturan aplikasi tanpa server yang akan membantu menerapkan kode AWS Lambda.

Dalam pembahasan lebih lanjut, kami akan mengerjakan opsi pertama di mana kami membuat fungsi lambda AWS menggunakan Author from scratch.

Sebelum kita membuat fungsi Lambda, akan membutuhkan peran yaitu, izin untuk bekerja dengan layanan AWS dan aws lambda. Nanti Peran tersebut harus ditetapkan ke fungsi aws lambda.

Pembuatan peran di AWS Console

Untuk membuat peran di AWS Console, buka layanan konsol AWS dan klik IAM seperti yang ditunjukkan di bawah ini -

Sekarang, jika Anda mengklik IAM, Anda akan melihat layar seperti yang ditunjukkan di bawah ini -

Jika Anda memilih Roles, Anda dapat melihat tombol berikut di layar -

Sekarang, klik Create role. Ini akan meminta Anda untuk memilih layanan di mana Anda perlu menggunakan peran yang dibuat.

Karena kami perlu menggunakan peran ini dengan AWS Lambda, pilih Lambda dan klik Next:Permissionstombol seperti yang ditunjukkan di atas. Layar berikutnya menampilkan nama kebijakan yang tersedia sesuai layanan AWS. Anda dapat memilih kebijakan dari sini -

Misalnya, jika Anda menginginkan izin untuk AWS Lambda untuk bekerja dengan S3 dan DynamoDB, Anda perlu memilih kebijakan. Di kotak pencarian, masukkan layanan AWS dan klik kotak centang. Anda dapat memilih beberapa kebijakan dan kemudian mengklikNext:Review.

Dimungkinkan juga untuk membuat kebijakan Anda sendiri. Misalnya, ada tabel dynamodb dan Anda hanya perlu memberikan izin ke tabel itu, dalam kasus seperti itu Anda dapat membuat kebijakan.

Klik Create policytombol seperti yang ditunjukkan pada layar di atas. Berikut adalah detail yang ditampilkan di layar.

Pilih Serviceyang kebijakannya Anda buat. Nanti akan muncul data untuk Actions,resources dan Request conditions.

Sekarang, kita harus memilih layanan. Mari kita pilihAWS Dynamodb dari pencarian. Actions memiliki detail berikut -

Sekarang, masukkan Access levelyang ingin Anda berikan ke DynamoDB. Kemudian,resources akan menampilkan detail berikut -

Sekarang, pilih jenis sumber daya tabel. Anda dapat melihat output berikut -

Untuk izin di atas meja, Anda perlu Add ARN. ARN adalah detail unik untuk tabel yang dibuat di AWS DynamoDB. Anda akan mendapatkan detailnya saat tabel dibuat di dynamodb.

Jika Anda mengklik Add ARN dan itu akan menampilkan detail berikut -

Sekarang, jika Anda memasukkan ARN dan Region, Account dan Tablenama akan diisi. Anda harus mengklikAddtombol untuk menambahkan kebijakan. Demikian pula, Anda dapat membuat kebijakan untuk layanan lain.

Di sini, kami telah memilih dua kebijakan AmazonS3FullAccess dan AmazonDynamoDBFullACcess. Kami telah memberikan akses penuh ke S3 dan DynamoDB dalam peran itu. Namun, disarankan agar Anda memberikan izin hanya untuk bucket dan tabel yang diperlukan.

Anda dapat mengikuti langkah-langkah yang dibahas sebelumnya untuk membuat kebijakan menggunakan ARN.

Langkah 1

Klik Create roletombol untuk membuat peran. Semua peran yang dibuat ditampilkan seperti yang ditunjukkan -

Langkah 2

Perhatikan bahwa Anda dapat memilih peran yang Anda perlukan jika Anda memerlukan modifikasi untuk peran yang dibuat. Jika kita memilihAuthor from scratch option, Anda harus masuk Name, Runtime and Role.

LANGKAH 3

Anda dapat mengamati detail berikut di Runtime tarik-turun -

LANGKAH 4

Anda dapat memilih runtime pilihan Anda dan melanjutkan seperti yang ditunjukkan.

Role dropdown memiliki opsi berikut -

  • Choose an existing role − Ini akan menampilkan semua peran yang dibuat dalam peran IAM.

  • Create new role from template(s) −Ini akan memungkinkan Anda membuat peran dan akan menampilkan izin untuk dipilih untuk peran itu. Amati tangkapan layar untuk pemahaman yang lebih baik.

  • Create a custom role − Ini memungkinkan pengguna untuk membuat kebijakan seperti yang kita bahas sebelumnya.

LANGKAH 5

Pilih runtime, roledan tambahkan fungsinya. KlikCreate functiontombol untuk membuat fungsi lambda. Layar selanjutnya yang ditampilkan adalah sebagai berikut -

Bagian dari Fungsi AWS Lambda

Ada dua bagian untuk fungsi AWS Lambda:Configuration dan Monitoring. Mari kita bahas masing-masing secara rinci.

Konfigurasi

Fungsi berikut termasuk dalam Konfigurasi.

Add Triggers

Pemicu yang diperlukan untuk ditambahkan ke fungsi AWS Lambda ditampilkan sebagai berikut -

Perhatikan bahwa ketika kita memilih pemicu, kita perlu menambahkan detail konfigurasi untuk pemicu itu. Untuk Contoh pemicu S3, kita perlu memilih nama bucket; untuk memicu Dynamodb kita perlu memilih nama tabel.

Contoh

Mari kita lihat contoh detail konfigurasi untuk pemicu S3 -

Sekarang, tambahkan detail konfigurasi untuk pemicu S3 ditambahkan -

Di sini Anda perlu memilih file bucket name, event type di mana Anda ingin memicu Lambda, awalan dan pola filter jika ada dan Add pemicunya.

Menambahkan Kode di Lambda

Sekarang, kita harus fokus pada kode Lambda yang akan ditulis. Untuk menambahkan kode di aws lambda ada tiga opsi -

  • Menggunakan editor sebaris
  • Menggunakan file .zip
  • Unggah file dari Amazon S3

Itu ditunjukkan pada gambar yang diberikan di bawah ini -

Mari kita bahas masing-masing secara rinci.

Using the inline editor

Editor kode sebaris tempat Anda dapat menulis kode adalah sebagai berikut -

Anda dapat menulis kode Anda dengan memilih bahasa pilihan Anda. Anda diizinkan memilih runtime lagi di sini.

Amati tangkapan layar berikut untuk pemahaman yang lebih baik -

Kode harus ditulis index.js.Handler. Detail akan berbeda berdasarkan waktu proses. Untuknodejs, ini filename.export function yang sekarang index.lambda handler.

Upload a .ZIP file

Anda dapat menulis kode terlebih dahulu, membuatnya menjadi zip, dan mengunggah file zip dengan memilih Upload a .ZIP file.

Upload a file from Amazon S3

Anda dapat mengunggah file dalam S3 bucket dan memilih opsi Upload a file from Amazon S3.

Perhatikan itu untuk .ZIP dan S3 runtime tidak dapat diubah.

Variabel lingkungan

Mereka mengambil pasangan nilai kunci dan membagikannya dengan kode AWS Lambda. Kami dapat menggunakan variabel lingkungan di AWS Lambda untuk menyimpan detail koneksi database, detail file untuk menyimpan output, detail file log, dll.

Tag

Mereka adalah pasangan nilai-kunci yang ditambahkan ke AWS Lambda untuk mengatur fungsi dengan lebih baik saat digunakan di berbagai wilayah. Untuk kasus penggunaan sederhana, ini tidak diperlukan. Ketika ada banyak fungsi Lambda yang dibuat, penandaan membantu dalam memfilter dan mengelola fungsi Lambda.

Peran eksekusi

Anda dapat mengubah peran lagi di sini jika tidak dilakukan dengan benar di awal pembuatan fungsi Lambda. Anda dapat memperbarui atau membuat peran baru di sini. Ini memberikan opsi yang sama yang ditampilkan di awal pembuatan fungsi Lambda.

Pengaturan dasar

Di sini Anda perlu memasukkan deskripsi singkat tentang apa yang dilakukan fungsi Lambda Anda. Pilih memori dan batas waktu yang diperlukan untuk fungsi Lambda.

Jaringan

Ini memungkinkan Anda memilih VPC yang akan memungkinkan Anda mengakses fungsi Lambda dari VPC. Secara default, tidak ada VPC yang dipilih.

Debugging dan Penanganan Error

Untuk debugging dan penanganan kesalahan, Anda dapat memilih layanan AWS untuk mengirimkan detailnya. Opsi yang tersedia adalahNone, SNS dan SQS.

Konkurensi

Ini memungkinkan Anda untuk mengalokasikan batas tertentu dari eksekusi serentak yang diizinkan untuk fungsi ini.

Audit dan Kepatuhan

Ini berisi log yang dikelola dengan bantuan AWS CloudTrail.

Setelah selesai, Anda perlu menyimpan perubahan menggunakan tombol Simpan seperti yang ditunjukkan di sini -

Sekarang, jika Anda mengklik Testtombol, itu akan meminta acara uji. Anda dapat lulus acara uji sampel sebagai berikut -

Acara uji yang dibuat seperti yang ditunjukkan di sini -

Sekarang, simpan peristiwa pengujian dan klik tombol uji untuk melihat eksekusi fungsi AWS Lambda -

Kode untuk index.js adalah sebagai berikut -

exports.lambdahandler = (event, context, callback) => {
   // TODO implement
   console.log(event.key1);
   console.log(event.key2);
   console.log(event.key3);
   callback(null, 'Lambda test');
};

Perhatikan bahwa fungsi callback dipanggil ketika ada kesalahan atau keberhasilan. Jika sukses, Anda bisa lihatLambda test akan ditampilkan.

Pemantauan

Pilih tab pemantauan untuk melihat detail eksekusi fungsi Lambda. Grafik menunjukkan detail waktu eksekusi, kesalahan yang terjadi, dll.

Anda juga dapat melihat log di Cloudwatch. Untuk ini, buka layanan AWS dan pilih cloudwatch seperti yang ditunjukkan -

Sekarang, pilih log dari sisi kiri dan masukkan nama fungsi Anda di filter -