

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Criação de uma AWS Lambda função para seu bot Amazon Lex V2
<a name="lambda-attach"></a>

Para criar uma função Lambda para seu bot Amazon Lex V2, acesse AWS Lambda seu AWS Management Console e crie uma nova função. Você pode consultar o [guia do AWS Lambda desenvolvedor](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) para obter mais detalhes sobreAWS Lambda.

1. Faça login no AWS Management Console e abra o AWS Lambda console em [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Escolha **Funções** na barra lateral esquerda.

1. Selecione **Criar função**.

1. Você pode selecionar **Criar do zero** para começar com o mínimo de código, **Usar um esquema** para selecionar o código de amostra para casos de uso comuns em uma lista, ou **Imagem do contêiner** para selecionar um contêiner a ser implantado em sua função. Se você selecionar **Criar do zero**, continue com as seguintes etapas:

   1. Dê à sua função um **Nome de função** significativo para descrever o que ela faz.

   1. Escolha um idioma no menu suspenso em **Runtime** para escrever sua função.

   1. Selecione uma **Arquitetura** de conjunto de instruções para sua função.

   1. Por padrão, o Lambda cria um perfil com permissões básicas. Para usar uma função existente ou criar uma função usando modelos de políticas da AWS, expanda o menu **Alterar função de execução padrão** e selecione uma opção.

   1. Expanda o menu **Configurações avançadas** para configurar mais opções.

1. Selecione **Criar função**.

A imagem a seguir mostra o que você vê ao criar uma nova função do zero:

![\[Uma nova função do Lambda.\]](http://docs.aws.amazon.com/pt_br/lexv2/latest/dg/images/lambda/lambda-new-function.png)


A função do manipulador do Lambda difere dependendo da linguagem que você usa. Ele usa minimamente um objeto JSON do `event` como argumento. Você pode ver os campos no `event` que o Amazon Lex V2 fornece em [AWS Lambdaformato de evento de entrada para Lex V2](lambda-input-format.md). Modifique a função do manipulador para finalmente retornar um objeto JSON de `response` que corresponda ao formato descrito em [AWS Lambdaformato de resposta para Lex V2](lambda-response-format.md).
+ Depois de terminar de escrever sua função, selecione **Implantar** para permitir que a função seja usada.

Lembre-se de que você pode associar cada alias de bot a, no máximo, uma função do Lambda. No entanto, você pode definir quantas funções precisar para seu bot no código do Lambda e chamar essas funções na função do manipulador do Lambda. Por exemplo, embora todas as intenções no mesmo alias de bot devam chamar a mesma função do Lambda, você pode criar uma função de roteador que ative uma função separada para cada intenção. Veja a seguir um exemplo de função de roteador que você pode usar ou modificar para sua aplicação:

```
import os
import json
import boto3

# reuse client connection as global
client = boto3.client('lambda')

def router(event):
    intent_name = event['sessionState']['intent']['name']
    fn_name = os.environ.get(intent_name)
    print(f"Intent: {intent_name} -> Lambda: {fn_name}")
    if (fn_name):
        # invoke lambda and return result
        invoke_response = client.invoke(FunctionName=fn_name, Payload = json.dumps(event))
        print(invoke_response)
        payload = json.load(invoke_response['Payload'])
        return payload
    raise Exception('No environment variable for intent: ' + intent_name)

def lambda_handler(event, context):
    print(event)
    response = router(event)
    return response
```

**Quando usar AWS Lambda funções nas conversas de bots do Amazon Lex V2**

Você pode usar as funções do Lambda nos seguintes pontos de uma conversa com um usuário:
+ Na resposta inicial após o reconhecimento da intenção. Por exemplo, depois que o usuário diz que quer pedir uma pizza.
+ Depois de obter um valor de slot do usuário. Por exemplo, depois que o usuário informa ao bot o tamanho da pizza que deseja pedir.
+ Entre cada nova tentativa para obter um slot. Por exemplo, se o cliente não usar um tamanho de pizza reconhecido.
+ Ao confirmar uma intenção. Por exemplo, ao confirmar um pedido de pizza.
+ Para cumprir uma intenção. Por exemplo, para fazer um pedido de pizza.
+ Depois de cumprir a intenção e antes que seu bot encerre a conversa. Por exemplo, para mudar para a intenção de pedir uma bebida.

**Topics**
+ [Anexe uma AWS Lambda função a um bot do Amazon Lex V2 usando o console](lambda-attach-console.md)
+ [Anexe uma AWS Lambda função a um bot do Amazon Lex V2 usando operações de API](lambda-attach-api.md)

# Anexe uma AWS Lambda função a um bot do Amazon Lex V2 usando o console
<a name="lambda-attach-console"></a>

Você deve primeiro anexar uma função Lambda ao seu alias de bot do Amazon Lex V2 antes de poder invocá-la. Você só pode anexar uma função do Lambda a cada alias do bot. Execute estas etapas para anexar a função do Lambda usando o Console da AWS. 

1. Faça login no AWS Management Console e abra o console do Amazon Lex em [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/).

1. Escolha **Bots** no painel lateral esquerdo e, na lista de bots, escolha o nome do bot ao qual você deseja anexar uma função do Lambda.

1. No painel do lado esquerdo, selecione **Aliases** no menu **Implantação**.

1. Na lista de aliases, escolha o nome do alias ao qual você deseja anexar uma função do Lambda.

1. No painel **Idiomas**, selecione o idioma para o qual você deseja que uma função do Lambda use. Selecione **Gerenciar idiomas no alias** para adicionar um idioma, se ele não estiver no painel.

1. No menu suspenso **Fonte**, escolha o nome da função do Lambda que você deseja anexar.

1. No menu suspenso **Versão da função do Lambda ou do alias**, escolha a versão ou o alias da função do Lambda que você deseja usar. Em seguida, selecione**Salvar**. A mesma função do Lambda é usada para todos os efeitos em uma linguagem com suporte pelo bot.

**Configurando uma intenção do Amazon Lex V2 para invocar uma função Lambda usando o console**

1. Depois de selecionar um bot, selecione **Intenções** no menu do lado esquerdo, abaixo do idioma do bot para o qual você deseja invocar a função do Lambda.

1. Escolha a intenção na qual você deseja invocar a função do Lambda para abrir o editor de intenção.

1. Há duas opções para configurar o hook de código do Lambda:

   1. Para invocar a função do Lambda após cada etapa da conversa, vá até a seção **Hooks de código** na parte inferior do editor de intenção e marque a caixa de seleção **Usar uma função do Lambda para inicialização e validação**, como na imagem a seguir:  
![\[A seção de hooks de código do editor de intenções do Amazon Lex V2.\]](http://docs.aws.amazon.com/pt_br/lexv2/latest/dg/images/lambda/lambda-code-hooks-all.png)

   1. Como alternativa, use a seção **Hook de código de diálogo** nos estágios de conversação para invocar a função do Lambda. A seção de **Hook de código de diálogo** aparece da seguinte forma:  
![\[A seção de hooks de código do editor de intenções do Amazon Lex V2.\]](http://docs.aws.amazon.com/pt_br/lexv2/latest/dg/images/lambda/lambda-code-hook-step.png)

      Há duas maneiras de controlar como o Amazon Lex V2 chama o hook de código para obter uma resposta:
      + Alterne o botão **Ativo** para marcá-lo como *ativo* ou *inativo*. Quando um hook de código está *ativo*, o Amazon Lex V2 chama o hook de código. Quando o hook de código está *inativo*, o Amazon Lex V2 não executa o hook de código.
      + Expanda a seção de **Hook de código de diálogo do Lambda** e marque a caixa de seleção **Invocar função do Lambda** para marcá-la como *habilitada* ou *desabilitada*. Você só pode habilitar ou desabilitar um hook de código quando ele estiver marcado como ativo. Quando marcado como *habilitado*, o hook de código é executado normalmente. Quando estiver *desabilitado*, o hook de código não é chamado e o Amazon Lex V2 age como se o hook de código tivesse sido retornado com sucesso. Para configurar respostas após o gancho do código de diálogo ser bem-sucedido, falhar ou expirar, selecione **Opções avançadas**

      O hook de código do Lambda pode ser invocado nos seguintes estágios de conversação:
      + Para invocar a função como **resposta inicial**, vá até a seção **Resposta inicial**, expanda a seta ao lado de **Resposta para reconhecer a solicitação do usuário** e selecione **Opções avançadas**. Encontre a seção **Hook de código de diálogo** na parte inferior do menu que aparece.
      + Para invocar a função após a **elicitação do slot**, vá até a seção **Slots**, expanda a seta ao lado da **Solicitação de slot** relevante e selecione **Opções avançadas**. Encontre a seção de **Hook de código de diálogo** na parte inferior do menu que aparece, logo acima dos **Valores padrão**.

        Você também pode invocar a função após cada elicitação. Para fazer isso, expanda a opção **Bot elicita informações** na seção **Mensagens de slot**, selecione **Mais opções de prompt** e marque a caixa de seleção ao lado de **Invocar hook de código do Lambda após cada elicitação**.
      + Para invocar a função para **confirmação da intenção**, vá até a seção **Confirmação**, expanda a seta ao lado de **Solicitações para confirmar a intenção** e selecione **Opções avançadas.** Encontre a seção **Hook de código de diálogo** na parte inferior do menu que aparece.
      + Para invocar a função para **cumprimento da intenção**, vá até a seção **Cumprimento**. Alterne o botão **Ativo** para definir o hook de código como *ativo*. Expanda a seta ao lado de **Sobre o atendimento bem-sucedido** e selecione **Opções avançadas**. Marque a caixa de seleção ao lado de **Usar uma função do Lambda para cumprimento** na seção **Hook de código do Lambda de atendimento** para definir o hook de código como *habilitado*.

1. Depois de definir os estágios da conversa nos quais será invocada a função do Lambda, **Crie** o bot novamente para testar a função.

# Anexe uma AWS Lambda função a um bot do Amazon Lex V2 usando operações de API
<a name="lambda-attach-api"></a>

Você deve primeiro anexar uma função Lambda ao seu alias de bot do Amazon Lex V2 antes de poder invocá-la. Você só pode associar uma função do Lambda a cada alias do bot. Execute estas etapas para anexar a função do Lambda usando operações de API. 

Se você estiver criando um novo alias de bot, use a [CreateBotAlias](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateBotAlias.html)operação para anexar uma função Lambda. Para anexar uma função Lambda a um alias de bot existente, use a operação. [UpdateBotAlias](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateBotAlias.html) Modifique o campo `botAliasLocaleSettings` para conter as configurações corretas:

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

1. O campo `botAliasLocaleSettings` é mapeado para um objeto cujas chaves são as localidades nas quais você deseja anexar a função do Lambda. Consulte [Idiomas e locais compatíveis](how-languages.md#supported-languages) para obter uma lista das localidades com suporte e os códigos que são chaves válidas.

1. Para encontrar uma função Lambda, abra o AWS Lambda console em [https://console.aws.amazon.com/lambda/casa](https://console.aws.amazon.com/lambda/home), selecione **Funções** na barra lateral esquerda e selecione a função a ser associada ao alias do bot. `lambdaARN` No lado direito da **Visão geral da função**, encontre o `lambdaARN` em **ARN da função**. Ele deve conter uma região, o ID da conta e o nome da função.

1. Para permitir que o Amazon Lex V2 invoque a função do Lambda para o alias, defina o campo `enabled` como `true`.

**Definindo uma intenção do Amazon Lex V2 para invocar uma função Lambda usando operações de API**

Para configurar a invocação da função Lambda durante uma intenção, use a [CreateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html)operação se estiver criando uma nova intenção ou a [UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html)operação se estiver invocando a função em uma intenção existente. Os campos que controlam a invocação da função do Lambda nas operações de intenção são `dialogCodeHook`, `initialResponseSetting`, `intentConfirmationSetting` e `fulfillmentCodeHook`.

Se você invocar a função durante a elicitação de um slot, use a [CreateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateSlot.html)operação se estiver criando um novo slot ou a [UpdateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateSlot.html)operação para invocar a função em um slot existente. O campo que controla a invocação da função do Lambda nas operações do slot é o `slotCaptureSetting` do objeto `valueElicitationSetting`.

1. Para configurar o gancho de código de diálogo do Lambda para ser executado após cada turno da conversa, defina o `enabled` campo do seguinte [DialogCodeHookSettings](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogCodeHookSettings.html)objeto no `dialogCodeHook` campo como: `true`

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

1. Como alternativa, você pode definir o gancho de código de diálogo do Lambda para ser executado somente em pontos específicos das conversas, modificando o `codeHook` and/or `elicitationCodeHook` campo nas estruturas que correspondem aos estágios da conversa nos quais você deseja invocar a função. Para usar o gancho de código de diálogo Lambda para cumprimento da intenção, use o `fulfillmentCodeHook` campo na operação ou. [CreateIntent[UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html)](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html) As estruturas e os usos desses três tipos de hooks de código são os seguintes:

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

O campo `codeHook` define as configurações para que o hook de código seja executado em um determinado estágio da conversa. É um [DialogCodeHookInvocationSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogCodeHookInvocationSetting.html)objeto com a seguinte estrutura:

```
"codeHook": {
    "active": boolean,
    "enableCodeHookInvocation": boolean,
    "invocationLabel": string,
    "postCodeHookSpecification": [PostDialogCodeHookInvocationSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostDialogCodeHookInvocationSpecification.html),
}
```
+ Altere o campo `active` para `true` para que o Amazon Lex V2 chame o hook de código nesse ponto da conversa.
+ Altere o campo `enableCodeHookInvocation` para `true` para o Amazon Lex V2 permitir que o hook de código seja executado normalmente. Se você marcá-lo como `false`, o Amazon Lex V2 age como se o hook de código tivesse sido retornado com sucesso.
+ O `invocationLabel` indica a etapa da caixa de diálogo a partir da qual o hook de código é invocado.
+ Use o campo `postCodeHookSpecification` para especificar as ações e mensagens que ocorrem após o hook de código ser bem-sucedido, falhar ou atingir o tempo limite.

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

O campo `elicitationCodeHook` define as configurações para que o hook de código seja executado no caso de um slot ou slots precisarem ser reutilizados. Esse cenário pode ocorrer se a elicitação do slot falhar ou a confirmação da intenção for negada. O `elicitationCodeHook` campo é um [ElicitationCodeHookInvocationSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ElicitationCodeHookInvocationSetting.html)objeto com a seguinte estrutura:

```
"elicitationCodeHook": {
    "enableCodeHookInvocation": boolean,
    "invocationLabel": string
}
```
+ Altere o campo `enableCodeHookInvocation` para `true` para o Amazon Lex V2 permitir que o hook de código seja executado normalmente. Se você marcá-lo como `false`, o Amazon Lex V2 age como se o hook de código tivesse sido retornado com sucesso.
+ O `invocationLabel` indica a etapa da caixa de diálogo a partir da qual o hook de código é invocado.

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

O campo `fulfillmentCodeHook` define as configurações do hook de código a ser executado para cumprir a intenção. Ele mapeia para o seguinte [FulfillmentCodeHookSettings](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentCodeHookSettings.html)objeto:

```
"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)
}
```
+ Altere o campo `active` para `true` para que o Amazon Lex V2 chame o hook de código nesse ponto da conversa.
+ Altere o campo `enabled` para `true` para o Amazon Lex V2 permitir que o hook de código seja executado normalmente. Se você marcá-lo como `false`, o Amazon Lex V2 age como se o hook de código tivesse sido retornado com sucesso.
+ Use o campo `fulfillmentUpdatesSpecification` para especificar as mensagens que aparecem para atualizar o usuário durante o cumprimento da intenção e o tempo associado a elas.
+ Use o campo `postFulfillmentStatusSpecification` para especificar as mensagens e ações que ocorrem após o hook de código ser bem-sucedido, falhar ou atingir o tempo limite.

Você pode invocar o hook de código do Lambda nos seguintes pontos de uma conversa definindo os campos `active` e `enableCodeHookInvocation`/`enabled` como `true`:

## Durante a resposta inicial
<a name="lambda-hook-initial-response"></a>

Para invocar a função Lambda na resposta inicial após o reconhecimento da intenção, use `codeHook` a estrutura no campo `initialResponse` da [CreateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html)operação or. [UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html) O `initialResponse` campo mapeia para o seguinte [InitialResponseSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_InitialResponseSetting.html)objeto:

```
"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)
}
```

## Após a elicitação do slot ou durante a nova elicitação do slot
<a name="lambda-hook-elicit-slot"></a>

Para invocar a função Lambda depois de obter um valor de slot, use `slotCaptureSetting` o campo dentro do campo `valueElicitation` da operação ou. [CreateSlot[UpdateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateSlot.html)](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateSlot.html) O `slotCaptureSetting` campo mapeia para o seguinte [SlotCaptureSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_SlotCaptureSetting.html)objeto:

```
"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)
}
```
+ Para invocar a função do Lambda depois que a elicitação do slot for bem-sucedida, use o campo `codeHook`.
+ Para invocar a função do Lambda depois que a elicitação de slots falhar e o Amazon Lex V2 tentar novamente a elicitação de slots, use o campo `elicitationCodeHook`.

## Após confirmação ou negação da intenção
<a name="lambda-hook-confirm-intent"></a>

Para invocar a função Lambda ao confirmar uma intenção, use `intentConfirmationSetting` o campo da operação ou. [CreateIntent[UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html)](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html) O `intentConfirmation` campo mapeia para o seguinte [IntentConfirmationSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_IntentConfirmationSetting.html)objeto:

```
"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)
}
```
+ Para invocar a função do Lambda após o usuário confirmar a intenção e seus slots, use o campo `codeHook`.
+ Para invocar a função do Lambda depois que o usuário negar a confirmação da intenção e o Amazon Lex V2 tentar novamente a elicitação de slots, use o campo `elicitationCodeHook`.

## Durante o cumprimento da intenção
<a name="lambda-hook-fulfill-intent"></a>

Para invocar a função Lambda para cumprir uma intenção, use `fulfillmentCodeHook` o campo na [CreateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html)operação ou. [UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html) O `fulfillmentCodeHook` campo mapeia para o seguinte [FulfillmentCodeHookSettings](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentCodeHookSettings.html)objeto:

```
{
    "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. Depois de definir os estágios da conversa nos quais invocar a função do Lambda, use a operação `BuildBotLocale` para reconstruir o bot a fim de testar a função.