Crear y adjuntar una función de Lambda a un alias de bot - Amazon Lex

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.

Crear y adjuntar una función de Lambda a un alias de bot

Creación de la función de Lambda

Para crear una función de Lambda para su bot Amazon Lex V2, acceda a AWS Lambda desde su cuenta de la AWS Management Console y cree una nueva función. Puede consultar la Guía para desarrolladores de AWS Lambda para obtener más información acerca de AWS Lambda.

  1. Inicie sesión en AWS Management Console y abra la consola de AWS Lambda en https://console.aws.amazon.com/lambda/.

  2. Seleccione Funciones en la barra lateral izquierda.

  3. Seleccione Crear función.

  4. 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:

    1. Dele a la función un Nombre de función significativo para describir lo que hace.

    2. Seleccione un idioma en el menú desplegable de Tiempo de ejecución para escribir la función.

    3. Seleccione una Arquitectura de un conjunto de instrucciones para la función.

    4. Por defecto, Lambda crea un rol con permisos básicos. Para usar un rol existente o para crear un rol mediante plantillas de políticas de AWS, expanda el menú Cambiar el rol de ejecución predeterminado y seleccione una opción.

    5. Amplíe el menú de Configuración avanzada para configurar más opciones.

  5. Seleccione Crear función.

La siguiente imagen muestra lo que se ve al crear una nueva función desde cero:

Una nueva función de Lambda.

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 Interpretar el formato del evento de entrada. Modifique la función del controlador para, en última instancia, devolver un objeto response JSON que coincida con el formato descrito en Preparar el formato de respuesta.

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

Añadir e invocar una función de Lambda

Para llamar a la función de Lambda en su bot de Amazon Lex V2, primero debe adjuntar la función a un alias de bot y, a continuación, establecer los puntos de la conversación en los que el bot invoca la función. Puede realizar estos pasos con la consola o las operaciones de la API.

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.