

Avviso di fine del supporto: il 15 settembre 2025 AWS interromperà il supporto per Amazon Lex V1. Dopo il 15 settembre 2025, non potrai più accedere alla console di Amazon Lex V1 o alle risorse di Amazon Lex V1. Se utilizzi Amazon Lex V2, consulta invece la [guida Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html). 

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Fase 1: creare una funzione Lambda
<a name="gs2-prepare"></a>

Innanzitutto, crea una funzione Lambda che soddisfi un ordine di pizza. Specifichi questa funzione nel tuo bot Amazon Lex, che creerai nella sezione successiva.

**Come creare una funzione Lambda**



1. Accedi a Console di gestione AWS e apri la AWS Lambda console all'indirizzo [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Scegli **Crea funzione**.

1. Nella pagina **Create function (Crea funzione)**, scegliere **Author from scratch (Crea da zero)**. 

   Per creare una funzione Lambda si utilizzerà il codice personalizzato fornito in questo esercizio, pertanto è necessario selezionare la funzione di creazione da zero.

   Esegui questa operazione:

   1. Digita il nome (`PizzaOrderProcessor`).

   1. Per il **Runtime (Runtime)**, scegliere la versione più recente di Node.js.

   1. Seleziona **Create new role from template(s)** (Crea nuovo ruolo da modello/i) come **Role** (Ruolo).

   1. Immetti un nuovo nome ruolo (`PizzaOrderProcessorRole`).

   1. Scegli **Crea funzione**.

1. Nella pagina function (Configura funzione) segui la procedura riportata di seguito. 

   Nella sezione **Function code** (Codice funzione) seleziona **Edit code inline** (Modifica codice in linea) e quindi copia e incolla il seguente codice funzione Node.js nella finestra. 

   ```
   '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. Scegli **Save** (Salva).

## Testare la funzione Lambda utilizzando dati di evento di esempio
<a name="gs2-lambdafunction-test"></a>

Nella console, prova la funzione Lambda utilizzando dati di evento di esempio per richiamarla manualmente. 

**Per testare la funzione Lambda:**

1. Accedi a Console di gestione AWS e apri la AWS Lambda console all'indirizzo [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Nella pagina della funzione **Lambda, scegli la funzione** Lambda (`PizzaOrderProcessor).`

1. Nella pagina delle funzioni, nell'elenco degli eventi di test, seleziona **Configure test events** (Configura eventi di test).

1. Nella pagina **Configure test event** (Configura evento di test) segui la procedura riportata di seguito. 

   1. Scegliere **Create new test event** (Creare nuovo evento di test).

   1. Nel campo **Event name** (Nome evento) immetti il nome per l'evento (`PizzaOrderProcessorTest`).

   1. Copia il seguente evento Amazon Lex nella finestra. 

      ```
      {
        "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. Scegli **Create** (Crea).

AWS Lambda crea il test e torni alla pagina della funzione. Scegli **Test** e Lambda eseguirà la tua funzione Lambda.

Nella casella dei risultati, seleziona **Details** (Dettagli). Il seguente output verrà visualizzato nel riquadro **Execution result** (Risultato esecuzione) della console. 

```
{
  "sessionAttributes": {},
  "dialogAction": {
    "type": "Close",
    "fulfillmentState": "Fulfilled",
    "message": {
      "contentType": "PlainText",
      "content": "Okay, I have ordered your large meat pizza on thin crust."
    }
}
```

## Fase succcessiva
<a name="gs2-next-step-create-bot"></a>

[Fase 2: creazione di un bot](gs2-create-bot.md)