Étape 1 : Créer une fonction Lambda - Amazon Lex V1

Si vous utilisez Amazon Lex V2, consultez plutôt le guide Amazon Lex V2.

 

Si vous utilisez Amazon Lex V1, nous vous recommandons de mettre à niveau vos robots vers Amazon Lex V2. Nous n'ajoutons plus de nouvelles fonctionnalités à la V1 et recommandons vivement d'utiliser la V2 pour tous les nouveaux robots.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Étape 1 : Créer une fonction Lambda

Créez d'abord une fonction Lambda qui exécute une commande de pizza. Vous spécifiez cette fonction dans votre bot Amazon Lex, que vous créez dans la section suivante.

Pour créer une fonction Lambda

  1. Connectez-vous à la AWS Management Console et ouvrez la console AWS Lambda à l'adresse https://console.aws.amazon.com/lambda/.

  2. Choisissez Créer une fonction.

  3. Sur la page Create function, sélectionnez Author from scratch.

    Comme vous créez une fonction Lambda à l'aide du code personnalisé qui vous est fourni dans le cadre de cet exercice, vous pouvez choisir le créer la fonction à partir de zéro.

    Procédez comme suit :

    1. Saisissez le nom (PizzaOrderProcessor).

    2. Pour Runtime (Exécution), choisissez la dernière version de Node.js.

    3. Pour Role, choisissez Create new role from template(s).

    4. Entrez un nom pour le nouveau rôle (PizzaOrderProcessorRole).

    5. Choisissez Créer une fonction.

  4. Sur la page de fonction, procédez comme suit :

    Dans la section Function code, choisissez Edit code inline, puis copiez le code de fonction Node.js suivant et collez-le dans la fenêtre.

    '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); } };
  5. Choisissez Enregistrer.

Testez la fonction Lambda à l'aide d'exemples de données d'événement

Dans la console, testez la fonction Lambda en utilisant des exemples de données d'événement pour l'invoquer manuellement.

Pour tester la fonction Lambda :
  1. Connectez-vous à la AWS Management Console et ouvrez la console AWS Lambda à l’adresse https://console.aws.amazon.com/lambda/.

  2. Sur la page de la fonction Lambda, sélectionnez la fonction Lambda (PizzaOrderProcessor).

  3. Sur la page de fonction, dans la liste des événements de test, choisissez Configure test events.

  4. Sur la page Configure test event, procédez de la façon suivante :

    1. Choisissez Create new test event.

    2. Dans le champ Event name, entrez un nom pour l'événement, par exemple (PizzaOrderProcessorTest).

    3. Copiez l'événement Amazon Lex suivant dans la fenêtre.

      { "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" } }
  5. Choisissez Créer.

AWS Lambda crée le test et vous revenez à la page de fonction. Choisissez Test et Lambda exécute votre fonction Lambda.

Dans la zone de résultat, choisissez Détails. La console affiche la sortie suivante dans le volet Execution result.

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

Étape suivante

Etape 2 : Création d'un bot