Aviso de fin de soporte: el 15 de septiembre de 2025, AWS dejaremos de ofrecer soporte para Amazon Lex V1. Después del 15 de septiembre de 2025, ya no podrá acceder a la consola Amazon Lex V1 ni a los recursos de Amazon Lex V1. Si utiliza Amazon Lex V2, consulte en su lugar la guía Amazon Lex V2.
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.
Paso 1: Crear una función Lambda
En primer lugar, cree una función de Lambda que pida una pizza. Deberá especificar esta función en el bot de Amazon Lex que creará en la siguiente sección.
Cómo crear una función de Lambda
Inicie sesión en AWS Management Console y abra la AWS Lambda consola en https://console.aws.amazon.com/lambda/
. -
Seleccione Crear función.
-
En la página Crear función, elija Diseñar desde cero.
Dado que está utilizando el código personalizado que se le ha proporcionado en este ejercicio para crear una función Lambda, debe seleccionar la opción para crear la función desde cero.
Haga lo siguiente:
-
Escriba el nombre (
PizzaOrderProcessor
). -
En Runtime, elija la última versión de Node.js.
-
En Role, elija Create new role from template(s).
-
Escriba un nombre nuevo para el rol (
PizzaOrderProcessorRole
). -
Seleccione Crear función.
-
-
En la página function, haga lo siguiente:
En la sección Function code, elija Edit code inline y, a continuación, copie el siguiente código de función de Node.js y péguelo en la ventana.
'use strict'; // Close dialog with the customer, reporting fulfillmentState of Failed or Fulfilled ("Thanks, your pizza will arrive in 20 minutes") function close(sessionAttributes, fulfillmentState, message) { return { sessionAttributes, dialogAction: { type: 'Close', fulfillmentState, message, }, }; } // --------------- Events ----------------------- function dispatch(intentRequest, callback) { console.log(`request received for userId=${intentRequest.userId}, intentName=${intentRequest.currentIntent.name}`); const sessionAttributes = intentRequest.sessionAttributes; const slots = intentRequest.currentIntent.slots; const crust = slots.crust; const size = slots.size; const pizzaKind = slots.pizzaKind; callback(close(sessionAttributes, 'Fulfilled', {'contentType': 'PlainText', 'content': `Okay, I have ordered your ${size} ${pizzaKind} pizza on ${crust} crust`})); } // --------------- Main handler ----------------------- // Route the incoming request based on intent. // The JSON body of the request is provided in the event slot. export const handler = (event, context, callback) => { try { dispatch(event, (response) => { callback(null, response); }); } catch (err) { callback(err); } };
-
Seleccione Guardar.
Prueba de la función de Lambda con datos de eventos de ejemplo
En la consola, pruebe la función de Lambda con datos de eventos de ejemplo para invocarla de manera manual.
Para probar la función de Lambda:
Inicie sesión en AWS Management Console y abra la AWS Lambda consola en https://console.aws.amazon.com/lambda/
. -
En la página Función de Lambda, elija la función de Lambda (
PizzaOrderProcessor).
-
En la página de la función, en la lista de eventos de prueba, elija Configure test events.
-
En la página Configure test event, haga lo siguiente:
-
Elija Crear nuevo evento de prueba.
-
En el campo Event name, escriba un nombre para el evento (
PizzaOrderProcessorTest
). -
Copie el siguiente evento de Amazon Lex en la ventana.
{ "messageVersion": "1.0", "invocationSource": "FulfillmentCodeHook", "userId": "user-1", "sessionAttributes": {}, "bot": { "name": "PizzaOrderingApp", "alias": "$LATEST", "version": "$LATEST" }, "outputDialogMode": "Text", "currentIntent": { "name": "OrderPizza", "slots": { "size": "large", "pizzaKind": "meat", "crust": "thin" }, "confirmationStatus": "None" } }
-
-
Seleccione Crear.
AWS Lambda crea la prueba y tú vuelves a la página de funciones. Elija Probar y Lambda ejecutará la función de Lambda.
En el cuadro de resultados, elija Details. La consola muestra la salida siguiente en el panel Execution result.
{
"sessionAttributes": {},
"dialogAction": {
"type": "Close",
"fulfillmentState": "Fulfilled",
"message": {
"contentType": "PlainText",
"content": "Okay, I have ordered your large meat pizza on thin crust."
}
}