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á.
Criando um AWS Lambda função para seu bot
Para criar uma função Lambda para seu bot Amazon Lex V2, acesse AWS Lambda do seu AWS Management Console e crie uma nova função. Você pode se referir ao AWS Lambda guia do desenvolvedor para obter mais detalhes sobre AWS Lambda.
-
Faça login no AWS Management Console e abra o AWS Lambda console em https://console.aws.amazon.com/lambda/
. -
Escolha Funções na barra lateral esquerda.
-
Selecione Criar função.
-
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:
-
Dê à sua função um Nome de função significativo para descrever o que ela faz.
-
Escolha um idioma no menu suspenso em Runtime para escrever sua função.
-
Selecione uma Arquitetura de conjunto de instruções para sua função.
-
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 AWS modelos de política, expanda o menu Alterar função de execução padrão e selecione uma opção.
-
Expanda o menu Configurações avançadas para configurar mais opções.
-
-
Selecione Criar função.
A imagem a seguir mostra o que você vê ao criar uma nova função do zero:
A função do manipulador do Lambda difere dependendo da linguagem que você usa. Ele usa minimamente um event
JSON objeto como argumento. Você pode ver os campos no event
que o Amazon Lex V2 fornece em AWS Lambda formato de evento de entrada para Lex V2. Modifique a função do manipulador para finalmente retornar um response
JSON objeto que corresponda ao formato descrito emAWS Lambda formato de resposta para Lex V2.
-
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 em conversas de bots
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.