

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

# Lampirkan AWS Lambda fungsi ke bot Amazon Lex V2 menggunakan operasi API
<a name="lambda-attach-api"></a>

Anda harus terlebih dahulu melampirkan fungsi Lambda ke alias bot Amazon Lex V2 Anda sebelum Anda dapat memanggilnya. Anda hanya dapat mengaitkan satu fungsi Lambda dengan setiap alias bot. Lakukan langkah-langkah ini untuk melampirkan fungsi Lambda menggunakan operasi API. 

Jika Anda membuat alias bot baru, gunakan [CreateBotAlias](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateBotAlias.html)operasi untuk melampirkan fungsi Lambda. Untuk melampirkan fungsi Lambda ke alias bot yang ada, gunakan operasi. [UpdateBotAlias](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateBotAlias.html) Ubah `botAliasLocaleSettings` bidang untuk memuat pengaturan yang benar:

```
{
    "botAliasLocaleSettings" : {
        locale: {
            "codeHookSpecification": {
                "lambdaCodeHook": {
                    "codeHookInterfaceVersion": "1.0",
                    "lambdaARN": "arn:aws:lambda:region:account-id:function:function-name"
                }
            },
            "enabled": true
        },
        ...
    }
}
```

1. `botAliasLocaleSettings`Bidang memetakan ke objek yang kuncinya adalah lokal di mana Anda ingin melampirkan fungsi Lambda. Lihat [Bahasa dan lokal yang didukung](how-languages.md#supported-languages) daftar lokal yang didukung dan kode yang merupakan kunci yang valid.

1. Untuk menemukan fungsi `lambdaARN` for Lambda, buka AWS Lambda konsol di [https://console.aws.amazon.com/lambda/rumah](https://console.aws.amazon.com/lambda/home), pilih **Fungsi** di bilah sisi kiri, dan pilih fungsi yang akan dikaitkan dengan alias bot. Di sisi kanan **ikhtisar Fungsi**, temukan di `lambdaARN` bawah **Fungsi ARN**. Ini harus berisi wilayah, ID akun, dan nama fungsi.

1. Untuk mengizinkan Amazon Lex V2 memanggil fungsi Lambda untuk alias, setel `enabled` bidang ke. `true`

**Menyetel intent Amazon Lex V2 untuk menjalankan fungsi Lambda menggunakan operasi API**

Untuk mengatur pemanggilan fungsi Lambda selama intent, gunakan [CreateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html)operasi jika Anda membuat intent baru, atau [UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html)operasi jika Anda menjalankan fungsi dalam intent yang ada. Bidang yang mengontrol pemanggilan fungsi Lambda dalam operasi intent adalah`dialogCodeHook`,, dan. `initialResponseSetting` `intentConfirmationSetting` `fulfillmentCodeHook`

Jika Anda menjalankan fungsi selama elisitasi slot, gunakan [CreateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateSlot.html)operasi jika Anda membuat slot baru, atau [UpdateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateSlot.html)operasi untuk memanggil fungsi di slot yang ada. Bidang yang mengontrol pemanggilan fungsi Lambda dalam operasi slot adalah objek. `slotCaptureSetting` `valueElicitationSetting`

1. Untuk mengatur hook kode dialog Lambda agar berjalan setelah setiap putaran percakapan, setel `enabled` bidang [DialogCodeHookSettings](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogCodeHookSettings.html)objek berikut di `dialogCodeHook` bidang menjadi: `true`

   ```
   "dialogCodeHook": {
       "enabled": boolean
   }
   ```

1. Atau, Anda dapat mengatur hook kode dialog Lambda agar berjalan hanya pada titik-titik tertentu dalam percakapan dengan memodifikasi `codeHook` and/or `elicitationCodeHook` bidang dalam struktur yang sesuai dengan tahapan percakapan di mana Anda ingin menjalankan fungsi tersebut. Untuk menggunakan hook kode dialog Lambda untuk pemenuhan maksud, gunakan `fulfillmentCodeHook` bidang dalam operasi atau. [CreateIntent[UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html)](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html) Struktur dan penggunaan ketiga jenis kait kode ini adalah sebagai berikut:

## CodeHook
<a name="lambda-code-hook"></a>

`codeHook`Bidang mendefinisikan pengaturan untuk hook kode untuk dijalankan pada tahap tertentu dalam percakapan. Ini adalah [DialogCodeHookInvocationSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogCodeHookInvocationSetting.html)objek dengan struktur berikut:

```
"codeHook": {
    "active": boolean,
    "enableCodeHookInvocation": boolean,
    "invocationLabel": string,
    "postCodeHookSpecification": [PostDialogCodeHookInvocationSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostDialogCodeHookInvocationSpecification.html),
}
```
+ Ubah `active` bidang menjadi `true` Amazon Lex V2 untuk memanggil kait kode pada saat itu dalam percakapan.
+ Ubah `enableCodeHookInvocation` bidang menjadi `true` Amazon Lex V2 untuk memungkinkan hook kode berjalan normal. Jika Anda menandainya`false`, Amazon Lex V2 bertindak seolah-olah pengait kode berhasil dikembalikan.
+ `invocationLabel`Ini menunjukkan langkah dialog dari mana kode hook dipanggil.
+ Gunakan `postCodeHookSpecification` bidang untuk menentukan tindakan dan pesan yang terjadi setelah hook kode berhasil, gagal, atau habis waktu.

## elicitationCodeHook
<a name="lambda-elicitation-code-hook"></a>

`elicitationCodeHook`Bidang mendefinisikan pengaturan untuk hook kode untuk dijalankan jika slot atau slot perlu ditimbulkan kembali. Skenario ini dapat terjadi jika elisitasi slot gagal atau konfirmasi maksud ditolak. `elicitationCodeHook`Bidang adalah [ElicitationCodeHookInvocationSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ElicitationCodeHookInvocationSetting.html)objek dengan struktur berikut:

```
"elicitationCodeHook": {
    "enableCodeHookInvocation": boolean,
    "invocationLabel": string
}
```
+ Ubah `enableCodeHookInvocation` bidang menjadi `true` Amazon Lex V2 untuk memungkinkan hook kode berjalan normal. Jika Anda menandainya`false`, Amazon Lex V2 bertindak seolah-olah pengait kode berhasil dikembalikan.
+ `invocationLabel`Ini menunjukkan langkah dialog dari mana kode hook dipanggil.

## fulfillmentCodeHook
<a name="lambda-fulfillment-code-hook"></a>

`fulfillmentCodeHook`Bidang mendefinisikan pengaturan untuk hook kode yang akan dijalankan untuk memenuhi maksud. Ini memetakan ke [FulfillmentCodeHookSettings](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentCodeHookSettings.html)objek berikut:

```
"fulfillmentCodeHook": {
    "active": boolean,
    "enabled": boolean,
    "fulfillmentUpdatesSpecification": [FulfillmentUpdatesSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentUpdatesSpecification.html),
    "postFulfillmentStatusSpecification": [PostFulfillmentStatusSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostFulfillmentStatusSpecification.html)
}
```
+ Ubah `active` bidang menjadi `true` Amazon Lex V2 untuk memanggil kait kode pada saat itu dalam percakapan.
+ Ubah `enabled` bidang menjadi `true` Amazon Lex V2 untuk memungkinkan hook kode berjalan normal. Jika Anda menandainya`false`, Amazon Lex V2 bertindak seolah-olah pengait kode berhasil dikembalikan.
+ Gunakan `fulfillmentUpdatesSpecification` bidang untuk menentukan pesan yang muncul untuk memperbarui pengguna selama pemenuhan maksud dan waktu yang terkait dengannya.
+ Gunakan `postFulfillmentStatusSpecification` bidang untuk menentukan pesan dan tindakan yang terjadi setelah hook kode berhasil, gagal, atau habis waktu.

Anda dapat memanggil hook kode Lambda pada titik-titik berikut dalam percakapan dengan menyetel bidang `enableCodeHookInvocation` and`enabled`/`active`ke: `true`

## Selama respon awal
<a name="lambda-hook-initial-response"></a>

Untuk memanggil fungsi Lambda dalam respons awal setelah maksud dikenali, gunakan struktur `codeHook` di `initialResponse` bidang operasi atau. [CreateIntent[UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html)](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html) `initialResponse`Bidang memetakan ke [InitialResponseSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_InitialResponseSetting.html)objek berikut:

```
"initialResponse": {
    "codeHook": {
        "active": boolean,
        "enableCodeHookInvocation": boolean,
        "invocationLabel": string,
        "postCodeHookSpecification": [PostDialogCodeHookInvocationSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostDialogCodeHookInvocationSpecification.html),
    },
    "initialResponse": [FulfillmentUpdatesSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentUpdatesSpecification.html),
    "nextStep": [PostFulfillmentStatusSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostFulfillmentStatusSpecification.html),
    "conditional": [ConditionalSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ConditionalSpecification.html)
}
```

## Setelah elisitasi slot atau selama elisitasi ulang slot
<a name="lambda-hook-elicit-slot"></a>

Untuk memanggil fungsi Lambda setelah memunculkan nilai slot, gunakan bidang `slotCaptureSetting` dalam bidang operasi `valueElicitation` atau. [CreateSlot[UpdateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateSlot.html)](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateSlot.html) `slotCaptureSetting`Bidang memetakan ke [SlotCaptureSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_SlotCaptureSetting.html)objek berikut:

```
"slotCaptureSetting": {
    "captureConditional": [ConditionalSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ConditionalSpecification.html),
    "captureNextStep": [DialogState object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogState.html),
    "captureResponse": [ResponseSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ResponseSpecification.html),
    "codeHook": {
        "active": true,
        "enableCodeHookInvocation": true,
        "invocationLabel": string,
        "postCodeHookSpecification": [PostDialogCodeHookInvocationSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostDialogCodeHookInvocationSpecification.html),
    },
    "elicitationCodeHook": {
        "enableCodeHookInvocation": boolean,
        "invocationLabel": string
    },
    "failureConditional": [ConditionalSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ConditionalSpecification.html),
    "failureNextStep": [DialogState object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogState.html),
    "failureResponse": [ResponseSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ResponseSpecification.html)
}
```
+ Untuk menjalankan fungsi Lambda setelah elisitasi slot berhasil, gunakan bidang. `codeHook`
+ Untuk menjalankan fungsi Lambda setelah elisitasi slot gagal dan Amazon Lex V2 mencoba lagi elisitasi slot, gunakan bidang tersebut. `elicitationCodeHook`

## Setelah konfirmasi maksud atau penolakan
<a name="lambda-hook-confirm-intent"></a>

Untuk memanggil fungsi Lambda saat mengonfirmasi maksud, gunakan bidang `intentConfirmationSetting` operasi atau. [CreateIntent[UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html)](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html) `intentConfirmation`Bidang memetakan ke [IntentConfirmationSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_IntentConfirmationSetting.html)objek berikut:

```
"intentConfirmationSetting": {
    "active": boolean,
    "codeHook": {
        "active": boolean,
        "enableCodeHookInvocation": boolean,
        "invocationLabel": string,
        "postCodeHookSpecification": [PostDialogCodeHookInvocationSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostDialogCodeHookInvocationSpecification.html),
    },
    "confirmationConditional": [ConditionalSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ConditionalSpecification.html),
    "confirmationNextStep": [DialogState object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogState.html),
    "confirmationResponse": [ResponseSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialResponseSpecificationogState.html),
    "declinationConditional": [ConditionalSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ConditionalSpecification.html),
    "declinationNextStep": [FulfillmentUpdatesSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentUpdatesSpecification.html),
    "declinationResponse": [PostFulfillmentStatusSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostFulfillmentStatusSpecification.html),
    "elicitationCodeHook": {
        "enableCodeHookInvocation": boolean,
        "invocationLabel": string,
    },
    "failureConditional": [ConditionalSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ConditionalSpecification.html),
    "failureNextStep": [DialogState object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogState.html),
    "failureResponse": [ResponseSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ResponseSpecification.html),
    "promptSpecification": [PromptSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PromptSpecification.html)
}
```
+ Untuk menjalankan fungsi Lambda setelah pengguna mengonfirmasi maksud dan slotnya, gunakan bidang tersebut. `codeHook`
+ Untuk menjalankan fungsi Lambda setelah pengguna menolak konfirmasi maksud dan Amazon Lex V2 mencoba lagi elicitation slot, gunakan bidang tersebut. `elicitationCodeHook`

## Selama pemenuhan niat
<a name="lambda-hook-fulfill-intent"></a>

Untuk memanggil fungsi Lambda untuk memenuhi maksud, gunakan bidang dalam `fulfillmentCodeHook` [CreateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html)operasi atau. [UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html) `fulfillmentCodeHook`Bidang memetakan ke [FulfillmentCodeHookSettings](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentCodeHookSettings.html)objek berikut:

```
{
    "active": boolean,
    "enabled": boolean,
    "fulfillmentUpdatesSpecification": [FulfillmentUpdatesSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentUpdatesSpecification.html),
    "postFulfillmentStatusSpecification": [PostFulfillmentStatusSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostFulfillmentStatusSpecification.html)
}
```

3. Setelah Anda mengatur tahapan percakapan untuk menjalankan fungsi Lambda, gunakan `BuildBotLocale` operasi untuk membangun kembali bot untuk menguji fungsi.