Se utilizzi Amazon Lex V2, consulta invece la guida Amazon Lex V2.
Se utilizzi Amazon Lex V1, ti consigliamo di aggiornare i bot ad Amazon Lex V2. Non stiamo più aggiungendo nuove funzionalità alla V1 e consigliamo vivamente di utilizzare la V2 per tutti i nuovi bot.
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: Creazione di una funzione Lambda
Innanzitutto, crea una funzione Lambda che soddisfi un ordine di pizza. Si specificherà questa funzione nel bot Amazon Lex, che si creerà nella sezione successiva.
Per creare una funzione Lambda
Accedere alla AWS Management Console e aprire la console di AWS Lambda all'indirizzo https://console.aws.amazon.com/lambda/
. -
Scegli Create function (Crea funzione).
-
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:
-
Digita il nome (
PizzaOrderProcessor
). -
Per il Runtime (Runtime), scegliere la versione più recente di Node.js.
-
Seleziona Create new role from template(s) (Crea nuovo ruolo da modello/i) come Role (Ruolo).
-
Immetti un nuovo nome ruolo (
PizzaOrderProcessorRole
). -
Scegli Create function (Crea funzione).
-
-
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); } };
-
Seleziona Salva.
Test della funzione Lambda mediante dati di esempio sugli eventi
Nella console, testate la funzione Lambda utilizzando i dati degli eventi di esempio per richiamarla manualmente.
Verifica della funzione Lambda:
Accedere alla AWS Management Console e aprire la console di AWS Lambda all'indirizzo https://console.aws.amazon.com/lambda/
. -
Nella pagina della funzione Lambda, scegli la funzione Lambda (
PizzaOrderProcessor).
-
Nella pagina delle funzioni, nell'elenco degli eventi di test, seleziona Configure test events (Configura eventi di test).
-
Nella pagina Configure test event (Configura evento di test) segui la procedura riportata di seguito.
-
Scegliere Create new test event (Creare nuovo evento di test).
-
Nel campo Event name (Nome evento) immetti il nome per l'evento (
PizzaOrderProcessorTest
). -
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" } }
-
-
Seleziona Create (Crea).
Dopo la creazione del test in AWS Lambda, torna alla pagina delle funzioni. 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." } }