Menggunakan Fungsi Lambda dengan Acara Terjadwal

Peristiwa yang dijadwalkan seharusnya terjadi secara berkala berdasarkan kumpulan aturan. Peristiwa terjadwal digunakan untuk menjalankan fungsi Lambda setelah interval yang ditentukan dalam layanan cloudwatch. Mereka paling baik digunakan untuk mengerjakan pekerjaan cron bersama dengan AWS Lambda. Bab ini akan menjelaskan dengan contoh sederhana cara mengirim email setelah setiap 5 menit menggunakan acara terjadwal dan AWS Lambda.

Persyaratan

Persyaratan untuk menggunakan fungsi Lambda dengan acara Terjadwal adalah sebagai berikut -

  • Verifikasi id email menggunakan AWS SES
  • Buat Peran untuk menggunakan AWS SES, Cloudwatch, dan AWS Lambda
  • Buat Fungsi Lambda untuk mengirim email
  • Tambahkan aturan untuk acara terjadwal dari AWS CloudWatch

Contoh

Contoh yang akan kami pertimbangkan akan menambahkan acara CloudWatch ke fungsi AWS Lambda. Cloudwatch akan memicu AWS Lambda berdasarkan pola waktu yang dilampirkan padanya. Misalnya, dalam contoh di bawah ini kami telah menggunakan 5 menit sebagai pemicu. Artinya setiap 5 menit, AWS Lambda akan dipicu dan AWS Lambda akan mengirim email setiap kali dipicu.

Diagram blok dasar untuk hal yang sama ditunjukkan di bawah ini -

Verifikasi ID Email menggunakan AWS SES

Masuk ke AWS dan buka layanan AWS SES seperti yang ditunjukkan di bawah ini -

Sekarang, klik Simple Email Layanan seperti yang ditunjukkan -

Klik Email Addresses di sisi kiri seperti yang ditunjukkan -

Ini menampilkan sebuah tombol Verify a New Email Address. Klik itu.

Memasukkan Email AddressAnda ingin memverifikasi. KlikVerify This Email Addresstombol. Anda akan menerima email dari AWS pada id email tersebut dengan subjek email: Amazon Web Services - Permintaan Verifikasi Alamat Email di wilayah AS Timur (Virginia U.)

Klik tautan yang diberikan dalam surat untuk memverifikasi alamat email. Setelah diverifikasi, itu akan menampilkan id email sebagai berikut -

Buat Peran untuk menggunakan AWS SES, Cloudwatch, dan AWS Lambda

Anda juga dapat membuat peran yang memberikan izin untuk menggunakan layanan. Untuk ini, buka IAM dan pilih Peran. Tambahkan kebijakan yang diperlukan dan buat peran. Perhatikan bahwa peran yang dibuat di sini adalahevents with lambda.

Buat Fungsi Lambda untuk Mengirim Email

Anda harus mengikuti langkah-langkah untuk membuat fungsi Lambda menggunakan runtime sebagai nodejs.

Sekarang, tambahkan pemicu ke Lambda seperti yang ditunjukkan -

Tambahkan detail ke CloudWatch Events Trigger seperti yang ditunjukkan di bawah ini -

Perhatikan bahwa acara akan dipicu setelah setiap 5 menit sesuai dengan pemicu aturan yang dibuat.

Kode Lambda untuk 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) {
   var eParams = {
      Destination: {
         ToAddresses: ["[email protected]"]
      },
      Message: {
         Body: {
            Text: {
               Data: "this mail comes from aws lambda event scheduling"
            }
         },
         Subject: {
            Data: "Event scheduling from aws lambda"
         }
      },
      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, kami membutuhkan layanan AWS SES. Anda dapat menambahkan ini menggunakan kode yang ditunjukkan sebagai berikut -

var aws = require('aws-sdk');
var ses = new aws.SES({
   region: 'us-east-1'
});

Untuk mengirim email dari nodejs, kami telah menciptakan eParams objek yang memiliki detail seperti example mail, to mail id dan the body with message sebagai berikut -

var eParams = {
   Destination: {
      ToAddresses: ["[email protected]"]
   },
   Message: {
      Body: {
         Text: {
            Data: "this mail comes from aws lambda event scheduling"
         }
      },
      Subject: {
         Data: "Event scheduling from aws lambda"
      }
   },
   Source: "[email protected]"
};

Kode Lambda untuk mengirim email adalah sebagai berikut -

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, mari kita simpan fungsi Lambda ini dan periksa id email untuk email. Tangkapan layar yang ditunjukkan di bawah ini menunjukkan bahwa email dikirim dari AWS Lambda setelah setiap 5 menit.