

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)