Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
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 fungsi Lambda ARN adalah arn:aws:lambda:us-east-1:account-id:function:. MyFunction
-
Tipe pemanggilan—Tipe pemanggilan fungsi Lambda. Jenis pemanggilan RequestResponseberarti bahwa eksekusi fungsi menghasilkan respons langsung. Jenis pemanggilan Peristiwa berarti bahwa fungsi tersebut dipanggil secara asinkron. Kami menyarankan Anda menggunakan jenis pemanggilan Acara kecuali eksekusi sinkron diperlukan untuk kasus penggunaan Anda.
Ada batas waktu 30 detik pada pemanggilan RequestResponse.
Untuk informasi selengkapnya, lihat Memanggil fungsi Lambda di Panduan AWS Lambda Pengembang.
-
Topik SNS- Nama atau ARN dari topik Amazon SNS untuk memberi tahu kapan fungsi Lambda yang ditentukan dipicu. Contoh topik Amazon SNS ARN adalah arn: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 berada di AWS Wilayah yang sama dengan titik akhir Amazon SES yang Anda gunakan untuk menerima email.
-
Topik Amazon SNS yang Anda pilih harus berada di AWS Wilayah yang sama dengan 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 contoh AWS Lambda kode, lihatContoh 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.