

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

# Panggil tindakan Fungsi Lambda
<a name="receiving-email-action-lambda"></a>

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 **RequestResponse**berarti 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](https://docs.aws.amazon.com/lambda/latest/dg/lambda-invocation.html) 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](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html) 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
<a name="receiving-email-action-lambda-function"></a>

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, lihat[Contoh fungsi Lambda](receiving-email-action-lambda-example-functions.md). Untuk contoh kasus penggunaan tingkat tinggi, lihat [Contoh kasus penggunaan](receiving-email-action-lambda-example-use-cases.md).

### Format input
<a name="receiving-email-action-lambda-input"></a>

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](receiving-email-notifications-contents.md).

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
<a name="receiving-email-action-lambda-function-return-values"></a>

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.

**Topics**
+ [Menulis fungsi Lambda Anda](#receiving-email-action-lambda-function)
+ [Contoh peristiwa email masuk](receiving-email-action-lambda-event.md)
+ [Contoh kasus penggunaan](receiving-email-action-lambda-example-use-cases.md)
+ [Contoh fungsi Lambda](receiving-email-action-lambda-example-functions.md)