Menggunakan Fungsi Lambda dengan Amazon DynamoDB

DynamoDB dapat memicu AWS Lambda ketika data ditambahkan ke tabel, diperbarui atau dihapus. Dalam bab ini, kami akan mengerjakan contoh sederhana yang akan menambahkan item ke tabel DynamoDB dan AWS Lambda yang akan membaca data dan mengirim email dengan data yang ditambahkan.

Persyaratan

Untuk menggunakan Amazon DB dan AWS Lambda, kita perlu mengikuti langkah-langkah seperti yang ditunjukkan di bawah ini -

  • Buat tabel di DynamoDB dengan kunci utama

  • Buat peran yang akan memiliki izin untuk bekerja dengan DynamoDB dan AWS Lambda.

  • Buat fungsi di AWS Lambda

  • AWS Lambda Trigger untuk mengirim email

  • Tambahkan data di DynamoDB

Mari kita bahas setiap langkah ini secara mendetail.

Contoh

Kami akan mengerjakan contoh berikut yang menunjukkan interaksi dasar antara DynamoDB dan AWS Lambda. Contoh ini akan membantu Anda memahami operasi berikut -

  • Membuat tabel bernama pelanggan di tabel Dynamodb dan cara memasukkan data ke tabel itu.

  • Memicu fungsi AWS Lambda setelah data dimasukkan dan mengirim email menggunakan layanan Amazon SES.

Diagram blok dasar yang menjelaskan aliran contoh adalah seperti yang ditunjukkan di bawah ini -

Buat Tabel di DynamoDB dengan Kunci Utama

Masuk ke konsol AWS. Buka Layanan AWS dan pilih DynamoDB seperti yang ditunjukkan di bawah ini. Pilih DynamoDB.

DynamoDB menunjukkan opsi seperti yang ditunjukkan di bawah ini -

Sekarang, klik Create tableuntuk membuat tabel seperti yang ditunjukkan. Kami menamakan tabel tersebut sebagaicustomer dengan kunci utama untuk tabel itu sebagai cust_id. KlikCreate tombol untuk menambahkan tabel ke dynamodb.

Tabel yang dibuat adalah seperti di bawah ini -

Kita dapat menambahkan item ke tabel yang dibuat sebagai berikut -

Klik Items dan klik Create item tombol seperti yang ditunjukkan -

Membuat Peran dengan Izin untuk Bekerja dengan DynamoDB dan AWS Lambda

Untuk membuat peran, Buka layanan AWS dan klik IAM.

Mari kita membuat kebijakan untuk digunakan hanya untuk tabel DynamoDB yang dibuat sebelumnya -

Sekarang, pilih a Service. Perhatikan bahwa layanan yang kami pilih adalahDynamoDB. UntukActions kami telah mengambil semuanya Dynamodbtindakan yaitu akses ke daftar, membaca dan menulis. Untukresources, kami akan memilih tindakan jenis sumber daya tabel. Saat Anda mengkliknya, Anda akan melihat layar sebagai berikut -

Sekarang, pilih table dan Add ARNuntuk itu seperti yang ditunjukkan. Kita akan mendapatkanARN detail dari customer table dibuat seperti yang ditunjukkan di bawah ini -

Memasukkan arn detailnya di sini -

Klik Addtombol untuk menyimpan perubahan. Setelah selesaiClick on Review policy. Masukkan nama kebijakan, deskripsi, dll seperti yang ditunjukkan di bawah ini -

Klik create policyuntuk menyimpannya. Tambahkan kebijakan ke peran yang akan dibuat. PilihRole dari sisi kiri dan masukkan detailnya.

Perhatikan bahwa kebijakan yang ditambahkan adalah newpolicyfordynamdb, awslambdafullaccess, cloudwatchfullaccess dan amazonsesfullaccess. Tambahkan peran dan akan menggunakannya saat membuat fungsi AWS Lambda.

Buat Fungsi di AWS Lambda

Jadi, kami telah membuat fungsi Lambda yang disebut newlambdafordynamodb seperti yang ditunjukkan.

Sekarang, mari kita tambahkan pemicu DynamodDB ke AWS Lambda yang dibuat. Runtime yang akan kita gunakan adalah Node.js.

Anda dapat menemukan detail berikut di pemicu Dynamodb yang akan dikonfigurasi untuk AWS Lambda -

Sekarang, cukup klik Add untuk menambahkan pemicu ke AWS Lambda.

AWS Lambda Trigger untuk Mengirim Email

AWS Lambda akan dipicu saat data dimasukkan ke dalam AWS Lambda. Parameter peristiwa akan memasukkan data dynamodb. Ini akan membaca data dari acara tersebut dan mengirim email.

Mengirim email

Untuk mengirim email, Anda harus mengikuti langkah-langkah yang diberikan di bawah ini -

Langkah 1

Buka layanan AWS dan pilih SES (layanan email sederhana). Validasi email yang kami perlukan untuk mengirim email seperti yang ditunjukkan -

Langkah 2

Klik tombol tersebut Verify a New Email Address untuk menambahkan alamat email.

LANGKAH 3

Masukkan alamat email untuk memverifikasinya. Alamat email akan menerima dan surat aktivasi dari Amazon yang perlu diklik. Setelah aktivasi selesai, id email diverifikasi dan dapat digunakan dengan layanan AWS.

LANGKAH 4

Kode AWS Lambda yang membaca data dari acara dan mengirim email diberikan di bawah ini -

var aws = require('aws-sdk');
var ses = new aws.SES({
   region: 'us-east-1'
});
exports.handler = function(event, context, callback) {
   console.log(event);
   let tabledetails = JSON.parse(JSON.stringify(event.Records[0].dynamodb));
   console.log(tabledetails.NewImage.address.S);
   let customerid = tabledetails.NewImage.cust_id.S;
   let name = tabledetails.NewImage.name.S;
   let address = tabledetails.NewImage.address.S;
	
   var eParams = {
      Destination: {
         ToAddresses: ["[email protected]"]
      },
      Message: {
         Body: {
            Text: {
               Data: "The data added is as follows:\n CustomerId:"+customerid+"\n Name:"+name+"\nAddress:"+address
            }
         },
         Subject: {
            Data: "Data Inserted in Dynamodb table customer"
         }
      },
      Source: "[email protected]"
   };
   console.log('===SENDING EMAIL===');
   var email = ses.sendEmail(eParams, function(err, data) {
      if (err) console.log(err);
      else {
         console.log("===EMAIL SENT===");
         console.log("EMAIL CODE END");
         console.log('EMAIL: ', email);
         context.succeed(event);
         callback(null, "email is send");
      }
   });
}

Sekarang, simpan fungsi dan data Lambda dalam tabel DynamoDB.

Tambahkan Data di DynamoDB

Gunakan urutan berikut untuk menambahkan data di DynamoDB.

Langkah 1

Pergi ke meja customer dibuat di Dynamodb.

Langkah 2

Klik Create item.

LANGKAH 3

Klik Save tombol dan periksa id email yang disediakan di AWS Lambda untuk melihat apakah email telah dikirim oleh AWS Lambda.