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á.
Para criar uma função Lambda para seu bot Amazon Lex V2, acesse a AWS Lambda partir do seu AWS Management Console e crie uma nova função. Você pode consultar o guia do AWS Lambda 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 modelos de AWS 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 objeto JSON do event
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 objeto JSON de response
que corresponda ao formato descrito em AWS 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.