Panggil tindakan Fungsi Lambda - Layanan Email Sederhana Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Panggil tindakan Fungsi Lambda

Tindakan Lambda memanggil kode Anda melalui fungsi Lambda dan memberitahu Anda melalui Amazon SNS secara opsional. Tindakan ini memiliki opsi dan persyaratan berikut.

Opsi
  • Fungsi Lambda—ARN fungsi Lambda. Contoh dari fungsi Lambda ARN adalaharn:aws:lambda:us-east-1:account-id:function:myfunction.

  • Tipe pemanggilan—Tipe pemanggilan fungsi Lambda. Jenis penangananRequestResponseberarti bahwa pelaksanaan hasil fungsi dalam respon langsung. Jenis penangananPeristiwaberarti bahwa fungsi ini dipanggil asynchronously. Sebaiknya Anda menggunakanPeristiwaJenis penanganan kecuali eksekusi sinkron diperlukan untuk kasus penggunaan Anda.

    Ada batas waktu 30 detik pada pemanggilan RequestResponse.

    Untuk informasi selengkapnya, lihatMemanggil fungsi LambdadiAWS LambdaPanduan Pengembang.

  • Topik SNS—Nama atau ARN dari topik Amazon SNS untuk memberi tahu ketika fungsi Lambda yang ditentukan dipicu. Contoh topik Amazon SNS ARN adalaharn:aws:sns:us-east- 1:123456789012:mytopic. Untuk informasi lebih lanjut, lihat Membuat topik Amazon SNS dalam Panduan Developer Amazon Simple Notification Service.

Persyaratan
  • Fungsi Lambda yang Anda pilih harus samaAWSWilayah sebagai titik akhir Amazon SES yang Anda gunakan untuk menerima email.

  • Topik Amazon SNS yang Anda pilih harus dalam hal yang samaAWSWilayah sebagai titik akhir Amazon SES yang Anda gunakan untuk menerima email.

Menulis fungsi Lambda Anda

Untuk memproses email Anda, fungsi Lambda Anda dapat dipanggil secara tidak sinkron (yaitu, menggunakan tipe pemanggilan Event). Objek peristiwa yang diteruskan ke fungsi Lambda Anda akan berisi metadata yang berkaitan dengan peristiwa email masuk. Anda juga dapat menggunakan metadata untuk mengakses konten pesan dari bucket Amazon S3 Anda.

Jika Anda benar-benar ingin mengontrol arus email, fungsi Lambda Anda harus dipanggil secara sinkron (yaitu, menggunakan tipe pemanggilan RequestResponse) dan fungsi Lambda Anda harus memanggil metode callback dengan dua argumen: argumen pertama adalah null, dan argumen kedua adalah properti disposition yang diatur ke STOP_RULE, STOP_RULE_SET, atau CONTINUE. Jika argumen kedua adalah null atau tidak memiliki properti disposition yang valid, arus email akan berlanjut dan tindakan serta aturan diproses lebih lanjut, yang sama dengan CONTINUE.

Misalnya, Anda dapat menghentikan set aturan penerimaan dengan menulis baris berikut di akhir kode fungsi Lambda Anda:

callback( null, { "disposition" : "STOP_RULE_SET" });

Untuk sampel kode AWS Lambda, lihat Contoh fungsi Lambda. Untuk contoh kasus penggunaan tingkat tinggi, lihat Contoh kasus penggunaan.

Format input

Amazon SES meneruskan informasi ke fungsi Lambda dalam format JSON. Objek tingkat atas berisi array Records, yang diisi dengan properti eventSource, eventVersion, dan ses. Objek ses berisi objek receipt dan mail, dalam format yang sama persis seperti di notifikasi Amazon SNS yang telah dijelaskan di Isi notifikasi.

Data yang diteruskan Amazon SES ke Lambda mencakup metadata tentang pesan, serta beberapa header email. Namun, data tersebut tidak berisi isi pesan.

Berikut ini adalah tampilan tingkat tinggi dari struktur input yang diberikan Amazon SES ke fungsi Lambda.

{ "Records": [ { "eventSource": "aws:ses", "eventVersion": "1.0", "ses": { "receipt": { <same contents as SNS notification> }, "mail": { <same contents as SNS notification> } } } ] }

Nilai pengembalian

Fungsi Lambda Anda dapat mengendalikan arus surat dengan mengembalikan salah satu nilai berikut:

  • STOP_RULE—Saat ini tidak ada tindakan lebih lanjut dalam aturan penerimaan yang akan diproses, tetapi aturan penerimaan dapat diproses lebih lanjut.

  • STOP_RULE_SET—Tidak ada tindakan atau aturan penerimaan akan diproses lebih lanjut.

  • CONTINUE atau nilai tidak valid lainnya— Hal ini berarti tindakan dan aturan penerimaan dapat diproses lebih lanjut.

Topik berikut membahas contoh peristiwa email masuk, contoh kasus penggunaan tingkat tinggi, dan contoh kode AWS Lambda: