

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

# Menyiapkan Prosesor Saluran untuk perpesanan Amazon Chime SDK
<a name="processor-setup"></a>

Untuk mulai menggunakan alur saluran, pertama-tama Anda membuat fungsi Lambda prosesor untuk menangani preprocessing untuk kasus penggunaan Anda. Misalnya, Anda dapat memperbarui konten pesan atau metadata, menolak pesan dan mencegahnya dikirim, atau membiarkan pesan asli lewat.

**Prasyarat**
+ Fungsi Lambda harus berada di AWS akun yang sama dan AWS Wilayah yang sama dengan. AppInstance

**Memberikan izin pemanggilan**  
Anda harus memberikan izin layanan pesan Amazon Chime SDK untuk memanggil sumber daya Lambda Anda. Untuk informasi selengkapnya tentang izin, lihat [Menggunakan kebijakan berbasis sumber daya](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html) untuk. AWS Lambda Contoh:

  
**Utama**: “messaging.chime.amazonaws.com”  
**Tindakan**: lambda: InvokeFunction  
**Efek**: Izinkan  
**AWS: SourceAccount**:*Your AWS AccountId*.  
**AWS: SourceArn**: `"arn:aws:chime:region:AWS AccountId: appInstance/"`

**catatan**  
Anda dapat memberikan ID instans aplikasi tertentu untuk memanggil prosesor, atau menggunakan wildcard untuk mengizinkan semua instance aplikasi Amazon Chime SDK di akun untuk memanggil prosesor Anda.

**Memberikan izin panggilan balik**  
Anda juga perlu mengizinkan fungsi Lambda prosesor Anda untuk memanggil API. `ChannelFlowCallback` Untuk informasi tentang melakukan itu, lihat [AWS Lambda menjalankan peran](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) dalam *panduan AWS Lambda pengembang*. 

Anda dapat menambahkan kebijakan Inline ke peran run fungsi Lambda Anda. Contoh ini memungkinkan prosesor untuk memanggil file. `ChannelFlowCallback API`

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "chime:ChannelFlowCallback"
            ],
            "Resource": [
            "arn:aws:chime:us-east-1:111122223333:appInstance/*"
            ]
        }
    ]
}
```

------

**catatan**  
Ikuti praktik terbaik untuk fungsi Lambda. Untuk informasi lebih lanjut, lihat topik ini:   
[Praktik Terbaik Efisiensi Kinerja](https://docs.aws.amazon.com/whitepapers/latest/serverless-architectures-lambda/performance-efficiency-best-practices.html) 
[Praktik terbaik untuk bekerja dengan AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html)
[Mengkonfigurasi konkurensi cadangan](https://docs.aws.amazon.com/lambda/latest/dg/configuration-concurrency.html#configuration-concurrency-reserved)
[Pemanggilan asinkron](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html)

**Memohon fungsi prosesor Lambda**  
Saat pengguna mengirim pesan, permintaan input berikut akan memanggil fungsi Lambda prosesor.

```
{
    "EventType": "string"
    "CallbackId": "string"
    "ChannelMessage": {
        "MessageId": "string",
        "ChannelArn": "string",
        "Content": "string",
        "Metadata": "string",
        "Sender":{
            "Arn": "string", 
            "Name": "string"
        },
        "Persistence": "string",
        "LastEditedTimestamp": "string", 
        "Type": "string",
        "CreatedTimestamp": "string", 
    }
}
```

EventType  
Acara dikirim ke prosesor. Nilainya adalah `CHANNEL_MESSAGE_EVENT` konstanta.

CallbackId  
Token yang digunakan saat memanggil `ChannelFlowCallback` API dari prosesor.

ChannelMessage  
*ChannelArn*ARN saluran  
*Konten* Konten Pesan yang akan diproses  
*CreatedTimestamp*Waktu di mana pesan itu dibuat  
*LastEditedTimestamp*Waktu di mana pesan diedit  
*MessageId*Pengidentifikasi pesan  
*Metadata Pesan metadata* yang akan diproses  
*Persistence* Boolean yang mengontrol apakah pesan bertahan di back end. Nilai Valid: `PERSISTENT | NON_PERSISTENT`  
*Pengirim Pengirim* pesan. Jenis: sebuah [identityobjek](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_Identity.html).  
*Ketik* Jenis pesan. ChannelFlowhanya mendukung jenis `STANDARD` pesan. Nilai Valid: `STANDARD`

Fungsi prosesor menentukan hal berikut tentang setiap pesan.
+ Apakah akan memperbarui konten pesan, metadata, atau keduanya
+ Apakah akan menolak pesan 
+ Apakah meninggalkan pesan tidak berubah

Saat pemrosesan selesai, fungsi Lambda prosesor mengirimkan hasilnya kembali ke layanan Pesan Amazon Chime SDK sehingga pesan dapat dikirim ke semua penerima. Status pesan ditandai `PENDING` sampai fungsi prosesor Lambda mengirimkan kembali hasilnya. Fungsi prosesor Lambda memiliki 48 jam untuk mengirim kembali hasilnya. Kami tidak menjamin pengiriman pesan setelah itu, dan [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ChannelFlowCallback.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ChannelFlowCallback.html)API melempar pesan kesalahan Forbidden Exception. Untuk mengirim kembali hasilnya, panggil `ChannelFlowCallback` API.