Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Para crear una función Lambda para su bot de Amazon Lex V2, acceda AWS Lambda desde su cuenta AWS Management Console y cree una nueva función. Puede consultar la guía para AWS Lambda desarrolladores para obtener más información al respecto AWS Lambda.
-
Inicia sesión en AWS Management Console y abre la AWS Lambda consola en https://console.aws.amazon.com/lambda/
. -
Seleccione Funciones en la barra lateral izquierda.
-
Seleccione Crear función.
-
Puede seleccionar Autor desde cero para empezar con un código mínimo, Usar un esquema para seleccionar de una lista código de muestra para casos de uso comunes, o Imagen de contenedor para seleccionar una imagen de contenedor para implementarla en su función. Si selecciona Autor desde cero, continúe con los siguientes pasos:
-
Dele a la función un Nombre de función significativo para describir lo que hace.
-
Seleccione un idioma en el menú desplegable de Tiempo de ejecución para escribir la función.
-
Seleccione una Arquitectura de un conjunto de instrucciones para la función.
-
Por defecto, Lambda crea un rol con permisos básicos. Para usar un rol existente o crear un rol mediante plantillas de AWS políticas, expanda el menú Cambiar el rol de ejecución predeterminado y seleccione una opción.
-
Amplíe el menú de Configuración avanzada para configurar más opciones.
-
-
Seleccione Crear función.
La siguiente imagen muestra lo que se ve al crear una nueva función desde cero:

La función del controlador de Lambda varía según el idioma que utilice. Como mínimo, toma un objeto event
JSON como argumento. Puede ver los campos del event
que Amazon Lex V2 proporciona en AWS Lambda formato de evento de entrada para Lex V2. Modifique la función del controlador para, en última instancia, devolver un objeto response
JSON que coincida con el formato descrito en AWS Lambda formato de respuesta para Lex V2.
-
Cuando termine de escribir la función, seleccione Implementar para permitir que se use la función.
Recuerde que puede asociar cada alias de bot como máximo a una función de Lambda. Sin embargo, puede definir tantas funciones como necesite para su bot en el código Lambda y llamar a estas funciones en la función de controlador de Lambda. Por ejemplo, si bien todas las intenciones del mismo alias de bot deben llamar a la misma función de Lambda, puede crear una función de router que active una función independiente para cada intención. A continuación, se muestra un ejemplo de función de router que puede utilizar o modificar para su aplicación:
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
Cuándo usar AWS Lambda las funciones en las conversaciones entre bots
Puede utilizar funciones de Lambda en los siguientes momentos de una conversación con un usuario:
-
En la respuesta inicial después de reconocer la intención. Por ejemplo, después de que el usuario diga que quiere pedir una pizza.
-
Después de obtener un valor de slot del usuario. Por ejemplo, después de que el usuario le diga al bot el tamaño de pizza que quiere pedir.
-
Entre cada reintento para obtener un slot. Por ejemplo, si el cliente no usa un tamaño de pizza reconocido.
-
Al confirmar una intención. Por ejemplo, al confirmar un pedido de pizza.
-
Para cumplir una intención. Por ejemplo, para hacer un pedido de pizza.
-
Una vez cumplida la intención y antes de que su bot cierre la conversación. Por ejemplo, para cambiar a una intención de pedir una bebida.