

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

# Penangan Ulasan Pesan Obrolan IVS
<a name="chat-message-review-handler"></a>

Penangan peninjau pesan memungkinkan Anda meninjau pesan and/or modifikasi sebelum dikirim ke ruangan. Ketika peninjau pesan dikaitkan dengan sebuah ruangan, penangan tersebut akan dipanggil untuk setiap SendMessage permintaan ke ruangan itu. Handler memberlakukan logika bisnis aplikasi Anda dan menentukan apakah akan mengizinkan, menolak, atau memodifikasi pesan. Obrolan Amazon IVS mendukung fungsi AWS Lambda sebagai handler.

## Membuat fungsi Lambda
<a name="create-lambda-function"></a>

Sebelum menyiapkan handler tinjauan pesan untuk suatu ruang, Anda harus membuat fungsi lambda dengan kebijakan IAM berbasis sumber daya. Fungsi lambda harus berada di akun AWS dan wilayah AWS yang sama dengan ruang tempat Anda akan menggunakan fungsi tersebut. Kebijakan berbasis sumber daya memberikan izin kepada Obrolan Amazon IVS untuk menginvokasi fungsi lambda Anda. Untuk instruksi, lihat [Kebijakan Berbasis Sumber Daya untuk Obrolan Amazon IVS](security-iam.md#security-chat-policy-examples).

### Alur kerja
<a name="create-lambda-function-workflow"></a>

![\[Alur kerja untuk membuat fungsi lambda dengan kebijakan IAM berbasis sumber daya.\]](http://docs.aws.amazon.com/id_id/ivs/latest/ChatUserGuide/images/Chat_Message_Review_Handler_Workflow.png)


### Sintaks Permintaan
<a name="create-lambda-function-request-syntax"></a>

Saat klien mengirim pesan, Obrolan Amazon IVS menginvokasi fungsi lambda dengan muatan JSON:

```
{
   "Content": "string",
   "MessageId": "string",
   "RoomArn": "string",
   "Attributes": {"string": "string"},
   "Sender": {
      "Attributes": { "string": "string" },
      "UserId": "string",
      "Ip": "string"
   }
}
```

### Isi Permintaan
<a name="create-lambda-function-request-body"></a>


| Bidang | Deskripsi | 
| --- | --- | 
| `Attributes` | Atribut yang terkait dengan pesan. | 
| `Content` |  Konten asli dari pesan. | 
| `MessageId` | ID pesan. Dihasilkan oleh Obrolan IVS. | 
| `RoomArn` | ARN ruang tempat pesan dikirim. | 
| `Sender` | Informasi tentang pengirim. Objek ini memiliki beberapa bidang: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/ivs/latest/ChatUserGuide/chat-message-review-handler.html)  | 

### Sintaks Respons
<a name="create-lambda-function-response-syntax"></a>

Fungsi lambda handler harus mengembalikan respons JSON dengan sintaks berikut. Respons yang tidak sesuai dengan sintaks di bawah ini atau memenuhi batasan bidang akan menjadi tidak valid. Dalam hal ini, pesan diizinkan atau ditolak tergantung pada `FallbackResult` nilai yang Anda tentukan dalam peninjau pesan; lihat [MessageReviewHandler](https://docs.aws.amazon.com/ivs/latest/ChatAPIReference/API_MessageReviewHandler.html)di Referensi *API Obrolan Amazon IVS*.

```
{
   "Content": "string",
   "ReviewResult": "string",
   "Attributes": {"string": "string"},
}
```

### Bidang Respons
<a name="create-lambda-function-response-fields"></a>


| Bidang | Deskripsi | 
| --- | --- | 
| `Attributes` |  Atribut yang terkait dengan pesan yang dikembalikan dari fungsi lambda. Jika `ReviewResult` adalah `DENY`, `Reason` dapat disediakan di `Attributes`; misalnya: `"Attributes": {"Reason": "denied for moderation` Dalam hal ini, klien pengirim menerima kesalahan WebSocket 406 dengan alasan dalam pesan kesalahan. (Lihat [WebSocket Kesalahan](https://docs.aws.amazon.com/ivs/latest/chatmsgapireference/error-messages.html#websocket-errors) dalam *Referensi API Pesan Obrolan Amazon IVS*.) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/ivs/latest/ChatUserGuide/chat-message-review-handler.html)  | 
| `Content` |  Konten pesan dikembalikan dari fungsi Lambda. Pesan tersebut dapat diedit atau tetap seperti aslinya tergantung pada logika bisnis. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/ivs/latest/ChatUserGuide/chat-message-review-handler.html)  | 
| `ReviewResult` | Hasil pemrosesan tinjauan tentang cara menangani pesan. Jika diizinkan, pesan dikirimkan ke semua pengguna yang terhubung ke ruang. Jika ditolak, pesan tidak dikirimkan ke pengguna mana pun.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/ivs/latest/ChatUserGuide/chat-message-review-handler.html)  | 

### Kode Sampel
<a name="create-lambda-function-example"></a>

Di bawah ini adalah contoh handler lambda di Go. Handler memodifikasi konten pesan, menjaga atribut pesan agar tidak berubah, dan mengizinkan pesan.

```
package main

import (
   "context"
   "github.com/aws/aws-lambda-go/lambda"
)

type Request struct {
   MessageId string
   Content string
   Attributes map[string]string
   RoomArn string
   Sender Sender
}

type Response struct {
   ReviewResult string
   Content string
   Attributes map[string]string
}

type Sender struct {
   UserId string
   Ip string
   Attributes map[string]string
}

func main() {
   lambda.Start(HandleRequest)
}

func HandleRequest(ctx context.Context, request Request) (Response, error) {
   content := request.Content + "modified by the lambda handler"
   return Response{
       ReviewResult: "ALLOW",
       Content: content,
   }, nil
}
```

## Mengaitkan dan Memutuskan Kaitan Handler dengan Ruang
<a name="associate-disassociate-room"></a>

Setelah handler lambda disiapkan dan diimplementasikan, gunakan [API Obrolan Amazon IVS](https://docs.aws.amazon.com/ivs/latest/ChatAPIReference/Welcome.html):
+ Untuk mengaitkan handler dengan ruangan, hubungi CreateRoom atau UpdateRoom dan tentukan handler.
+ Untuk memisahkan handler dari sebuah ruangan, panggil UpdateRoom dengan nilai kosong untuk. `MessageReviewHandler.Uri`

## Memantau Kesalahan dengan Amazon CloudWatch
<a name="monitor-errors-with-cloudwatch"></a>

Anda dapat memantau kesalahan yang terjadi dalam peninjauan pesan dengan Amazon CloudWatch, dan Anda dapat membuat alarm atau dasbor untuk menunjukkan atau menanggapi perubahan kesalahan tertentu. Jika terjadi kesalahan, pesan diizinkan atau ditolak tergantung pada `FallbackResult` nilai yang Anda tentukan saat Anda mengaitkan handler dengan ruangan; lihat [MessageReviewHandler](https://docs.aws.amazon.com/ivs/latest/ChatAPIReference/API_MessageReviewHandler.html)di Referensi *API Obrolan Amazon IVS*.

Ada beberapa tipe kesalahan:
+ `InvocationErrors` terjadi saat Obrolan Amazon IVS tidak dapat menginvokasi handler.
+ `ResponseValidationErrors` terjadi saat handler mengembalikan respons yang tidak valid.
+ `Errors` AWS Lambda terjadi saat handler lambda mengembalikan kesalahan fungsi saat sudah diinvokasi.

Untuk informasi selengkapnya tentang kesalahan invokasi dan kesalahan validasi respons (yang dikeluarkan oleh Obrolan Amazon IVS), lihat [Memantau Obrolan Amazon IVS](chat-health.md). Untuk informasi selengkapnya tentang kesalahan AWS Lambda, lihat [Bekerja Menggunakan Metrik Lambda](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics.html).