

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

# Mengonfigurasi sumber acara Amazon MQ untuk Lambda
<a name="process-mq-messages-with-lambda"></a>

**Topics**
+ [Konfigurasikan keamanan jaringan](#process-mq-messages-with-lambda-networkconfiguration)
+ [Buat pemetaan sumber acara](#services-mq-eventsourcemapping)

## Konfigurasikan keamanan jaringan
<a name="process-mq-messages-with-lambda-networkconfiguration"></a>

Untuk memberi Lambda akses penuh ke Amazon MQ melalui pemetaan sumber acara Anda, broker Anda harus menggunakan titik akhir publik (alamat IP publik), atau Anda harus memberikan akses ke VPC Amazon tempat Anda membuat broker.

Saat Anda menggunakan Amazon MQ dengan Lambda, buat [titik akhir AWS PrivateLink VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) yang menyediakan akses fungsi Anda ke sumber daya di VPC Amazon Anda.

**catatan**  
AWS PrivateLink Titik akhir VPC diperlukan untuk fungsi dengan pemetaan sumber peristiwa yang menggunakan mode default (sesuai permintaan) untuk poller acara. Jika pemetaan sumber acara menggunakan [mode yang disediakan](invocation-eventsourcemapping.md#invocation-eventsourcemapping-provisioned-mode), Anda tidak perlu mengonfigurasi titik akhir AWS PrivateLink VPC.

Buat titik akhir untuk menyediakan akses ke sumber daya berikut:
+  Lambda — Buat titik akhir untuk kepala layanan Lambda. 
+  AWS STS — Buat titik akhir AWS STS untuk prinsipal layanan untuk mengambil peran atas nama Anda. 
+  Secrets Manager — Jika broker Anda menggunakan Secrets Manager untuk menyimpan kredensi, buat endpoint untuk Secrets Manager. 

Atau, konfigurasikan gateway NAT di setiap subnet publik di Amazon VPC. Untuk informasi selengkapnya, lihat [Aktifkan akses internet untuk fungsi Lambda yang terhubung dengan VPC](configuration-vpc-internet.md).

Saat Anda membuat pemetaan sumber peristiwa untuk Amazon MQ, Lambda memeriksa apakah Antarmuka Jaringan Elastis ENIs () sudah ada untuk subnet dan grup keamanan yang dikonfigurasi untuk Amazon VPC Anda. Jika Lambda menemukan yang ada ENIs, ia mencoba untuk menggunakannya kembali. Jika tidak, Lambda membuat yang baru ENIs untuk terhubung ke sumber acara dan memanggil fungsi Anda.

**catatan**  
Fungsi Lambda selalu berjalan di dalam yang VPCs dimiliki oleh layanan Lambda. Konfigurasi VPC fungsi Anda tidak memengaruhi pemetaan sumber peristiwa. Hanya konfigurasi jaringan sumber acara yang menentukan bagaimana Lambda terhubung ke sumber acara Anda.

Konfigurasikan grup keamanan untuk VPC Amazon yang berisi broker Anda. Secara default, Amazon MQ menggunakan port berikut: `61617` (Amazon MQ untuk ActiveMQ), `5671` dan (Amazon MQ untuk RabbitMQ).
+ Aturan masuk - Izinkan semua lalu lintas di port broker default untuk grup keamanan yang terkait dengan sumber acara Anda. Atau, Anda dapat menggunakan aturan grup keamanan referensi mandiri untuk mengizinkan akses dari instans dalam grup keamanan yang sama.
+ Aturan keluar - Izinkan semua lalu lintas di port `443` untuk tujuan eksternal jika fungsi Anda perlu berkomunikasi dengan AWS layanan. Atau, Anda juga dapat menggunakan aturan grup keamanan referensi diri untuk membatasi akses ke broker jika Anda tidak perlu berkomunikasi dengan layanan lain AWS .
+ Aturan masuk titik akhir VPC Amazon — Jika Anda menggunakan titik akhir VPC Amazon, grup keamanan yang terkait dengan titik akhir VPC Amazon Anda harus mengizinkan lalu lintas masuk di port dari grup keamanan broker. `443`

Jika broker Anda menggunakan otentikasi, Anda juga dapat membatasi kebijakan titik akhir untuk titik akhir Secrets Manager. Untuk memanggil Secrets Manager API, Lambda menggunakan peran fungsi Anda, bukan kepala layanan Lambda.

**Example Kebijakan titik akhir VPC — titik akhir Secrets Manager**  

```
{
      "Statement": [
          {
              "Action": "secretsmanager:GetSecretValue",
              "Effect": "Allow",
              "Principal": {
                  "AWS": [
                      "arn:aws::iam::123456789012:role/my-role"
                  ]
              },
              "Resource": "arn:aws::secretsmanager:us-west-2:123456789012:secret:my-secret"
          }
      ]
  }
```

Saat Anda menggunakan titik akhir Amazon VPC, AWS merutekan panggilan API Anda untuk menjalankan fungsi Anda menggunakan Antarmuka Jaringan Elastis (ENI) titik akhir. Kepala layanan Lambda perlu memanggil `lambda:InvokeFunction` peran dan fungsi apa pun yang menggunakannya. ENIs

Secara default, titik akhir Amazon VPC memiliki kebijakan IAM terbuka yang memungkinkan akses luas ke sumber daya. Praktik terbaik adalah membatasi kebijakan ini untuk melakukan tindakan yang diperlukan menggunakan titik akhir tersebut. Untuk memastikan bahwa pemetaan sumber peristiwa Anda dapat menjalankan fungsi Lambda Anda, kebijakan titik akhir VPC harus mengizinkan kepala layanan Lambda untuk memanggil dan. `sts:AssumeRole` `lambda:InvokeFunction` Membatasi kebijakan titik akhir VPC Anda agar hanya mengizinkan panggilan API yang berasal dari organisasi Anda mencegah pemetaan sumber peristiwa berfungsi dengan baik, `"Resource": "*"` sehingga diperlukan dalam kebijakan ini.

Contoh kebijakan titik akhir VPC berikut menunjukkan cara memberikan akses yang diperlukan ke prinsipal layanan Lambda untuk titik akhir dan Lambda. AWS STS 

**Example Kebijakan Titik Akhir VPC — titik akhir AWS STS**  

```
{
      "Statement": [
          {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                  "Service": [
                      "lambda.amazonaws.com"
                  ]
              },
              "Resource": "*"
          }
      ]
    }
```

**Example Kebijakan Titik Akhir VPC - Titik akhir Lambda**  

```
{
      "Statement": [
          {
              "Action": "lambda:InvokeFunction",
              "Effect": "Allow",
              "Principal": {
                  "Service": [
                      "lambda.amazonaws.com"
                  ]
              },
              "Resource": "*"
          }
      ]
  }
```

## Buat pemetaan sumber acara
<a name="services-mq-eventsourcemapping"></a>

Buat [pemetaan sumber kejadian](invocation-eventsourcemapping.md) untuk memberi tahu Lambda agar mengirim rekaman dari broker Amazon MQ ke fungsi Lambda. Anda dapat membuat beberapa pemetaan sumber kejadian untuk memproses data yang sama dengan beberapa fungsi, atau untuk memproses item dari beberapa sumber dengan satu fungsi.

Untuk mengonfigurasi fungsi agar dibaca dari Amazon MQ, tambahkan izin yang diperlukan dan buat **pemicu MQ** di konsol Lambda.

Untuk membaca catatan dari broker Amazon MQ, fungsi Lambda Anda memerlukan izin berikut. [Anda memberi Lambda izin untuk berinteraksi dengan broker Amazon MQ Anda dan sumber yang mendasarinya dengan menambahkan pernyataan izin ke peran eksekusi fungsi Anda:](lambda-intro-execution-role.md)
+ [mq: DescribeBroker](https://docs.aws.amazon.com/amazon-mq/latest/api-reference/brokers-broker-id.html#brokers-broker-id-http-methods)
+ [manajer rahasia: GetSecretValue](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html)
+ [EC2: CreateNetworkInterface](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html)
+ [EC2: DeleteNetworkInterface](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkInterface.html)
+ [EC2: DescribeNetworkInterfaces](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInterfaces.html)
+ [EC2: DescribeSecurityGroups](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html)
+ [EC2: DescribeSubnets](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html)
+ [EC2: DescribeVpcs](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcs.html)
+ [log: CreateLogGroup](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html)
+ [log: CreateLogStream](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogStream.html)
+ [log: PutLogEvents](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html)

**catatan**  
Saat menggunakan kunci terkelola pelanggan yang terenkripsi, tambahkan juga izin `[kms:Decrypt](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-bootstrap-brokers.html#clusters-clusterarn-bootstrap-brokersget)`.

**Untuk menambahkan izin dan membuat pemicu**

1. Buka [Halaman fungsi](https://console.aws.amazon.com/lambda/home#/functions) di konsol Lambda.

1. Pilih nama sebuah fungsi.

1. Pilih tab **Konfigurasi**, lalu pilih **Izin**.

1. Di bawah **Nama peran**, pilih tautan ke peran eksekusi Anda. Tautan ini membuka peran di konsol IAM.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/execution-role.png)

1. Pilih **Tambahkan izin**, lalu pilih **Buat kebijakan sebaris**.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/inline-policy.png)

1. Di **editor Kebijakan**, pilih **JSON**. Masukkan kebijakan berikut. Fungsi Anda memerlukan izin ini untuk membaca dari broker Amazon MQ.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Action": [
             "mq:DescribeBroker",
             "secretsmanager:GetSecretValue",
             "ec2:CreateNetworkInterface",
             "ec2:DeleteNetworkInterface",
             "ec2:DescribeNetworkInterfaces", 
             "ec2:DescribeSecurityGroups",
             "ec2:DescribeSubnets",
             "ec2:DescribeVpcs",
             "logs:CreateLogGroup",
             "logs:CreateLogStream", 
             "logs:PutLogEvents"		
           ],
           "Resource": "*"
         }
       ]
     }
   ```

------
**catatan**  
Saat menggunakan kunci terkelola pelanggan terenkripsi, Anda juga harus menambahkan izin. `kms:Decrypt`

1. Pilih **Berikutnya**. Masukkan nama kebijakan, lalu pilih **Buat kebijakan**.

1. Kembali ke fungsi Anda di konsol Lambda. Di bagian **Gambaran umum fungsi**, pilih **Tambah pemicu**.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/add-trigger.png)

1. Pilih jenis pemicu **MQ**.

1. Konfigurasikan opsi yang diperlukan, lalu pilih **Tambah**.

Lambda mendukung opsi berikut untuk sumber kejadian Amazon MQ:
+ **MQ broker** – Pilih broker Amazon MQ.
+ **Ukuran batch** – Atur jumlah maksimum pesan yang akan diambil dalam satu batch.
+ **Nama antrean** – Masukkan antrean Amazon MQ yang akan digunakan.
+ **Konfigurasi akses sumber** — Masukkan informasi host virtual dan rahasia Secrets Manager yang menyimpan kredensi broker Anda.
+ **Aktifkan pemicu** – Nonaktifkan pemicu untuk menghentikan pemrosesan rekaman.

Untuk mengaktifkan atau menonaktifkan pemicu (atau menghapusnya) pilih pemicu **MQ** di desainer. Untuk mengonfigurasi ulang pemicu, gunakan operasi API pemetaan sumber kejadian.