

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 de 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](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html). 

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
<a name="gs2-prepare"></a>

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**



1. Inicie sesión en Consola de administración de AWS y abra la AWS Lambda consola en [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Seleccione **Creación de función**.

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

   1. Escriba el nombre (`PizzaOrderProcessor`).

   1. En **Runtime**, elija la última versión de Node.js.

   1. En **Role**, elija **Create new role from template(s)**.

   1. Escriba un nombre nuevo para el rol (`PizzaOrderProcessorRole`).

   1. Seleccione **Creación de función**.

1. 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);
       }
   };
   ```

1. Seleccione **Save**.

## Prueba de la función de Lambda con datos de eventos de ejemplo
<a name="gs2-lambdafunction-test"></a>

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:**

1. Inicie sesión en Consola de administración de AWS y abra la AWS Lambda consola en [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. En la página **Función de Lambda**, elija la función de Lambda (`PizzaOrderProcessor).`

1. En la página de la función, en la lista de eventos de prueba, elija **Configure test events**.

1. En la página **Configure test event**, haga lo siguiente: 

   1. Elija **Crear nuevo evento de prueba**.

   1. En el campo **Event name**, escriba un nombre para el evento (`PizzaOrderProcessorTest`).

   1. 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"
        }
      }
      ```

1. 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."
    }
}
```

## Paso siguiente
<a name="gs2-next-step-create-bot"></a>

[Paso 2: creación de un bot](gs2-create-bot.md)