

Avis de fin de support : le 15 septembre 2025, le support pour Amazon Lex V1 AWS sera interrompu. Après le 15 septembre 2025, vous ne pourrez plus accéder à la console Amazon Lex V1 ni aux ressources Amazon Lex V1. Si vous utilisez Amazon Lex V2, consultez plutôt le [guide Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html). 

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.

# Utilisation des fonctions Lambda
<a name="using-lambda"></a>

Vous pouvez créer des AWS Lambda fonctions à utiliser comme crochets de code pour votre robot Amazon Lex. Vous pouvez identifier les fonctions Lambda pour effectuer l'initialisation et la validation, l'exécution ou les deux dans votre configuration d'intention.

Nous vous recommandons d'utiliser une fonction Lambda comme crochet de code pour votre bot. Sans fonction Lambda, votre bot renvoie les informations d'intention à l'application cliente pour exécution. 



**Topics**
+ [Format d'événement et de réponse d'entrée de la fonction Lambda](lambda-input-response-format.md)
+ [Amazon Lex et AWS Lambda Blueprints](lex-lambda-blueprints.md)

# Format d'événement et de réponse d'entrée de la fonction Lambda
<a name="lambda-input-response-format"></a>

Cette section décrit la structure des données d'événements qu'Amazon Lex fournit à une fonction Lambda. Utilisez ces informations pour analyser l'entrée de votre code Lambda. Il explique également le format de la réponse qu'Amazon Lex attend de votre fonction Lambda. 

**Topics**
+ [Format d'un événement d'entrée](#using-lambda-input-event-format)
+ [Format de la réponse](#using-lambda-response-format)

## Format d'un événement d'entrée
<a name="using-lambda-input-event-format"></a>

Ce qui suit montre le format général d'un événement Amazon Lex transmis à une fonction Lambda. Utilisez ces informations lorsque vous écrivez votre fonction Lambda.

**Note**  
Le format d'entrée peut changer sans modification correspondante dans `messageVersion`. Le code ne devrait pas générer une erreur si de nouveaux champs sont présents.

```
{
  "currentIntent": {
    "name": "intent-name",
    "nluIntentConfidenceScore": score,
    "slots": {
      "slot name": "value",
      "slot name": "value"
    },
    "slotDetails": {
      "slot name": {
        "resolutions" : [
          { "value": "resolved value" },
          { "value": "resolved value" }
        ],
        "originalValue": "original text"
      },
      "slot name": {
        "resolutions" : [
          { "value": "resolved value" },
          { "value": "resolved value" }
        ],
        "originalValue": "original text"
      }
    },
    "confirmationStatus": "None, Confirmed, or Denied (intent confirmation, if configured)"
  },
  "alternativeIntents": [
    {
      "name": "intent-name",
      "nluIntentConfidenceScore": score,
      "slots": {
        "slot name": "value",
        "slot name": "value"
      },
      "slotDetails": {
        "slot name": {
          "resolutions" : [
            { "value": "resolved value" },
            { "value": "resolved value" }
          ],
          "originalValue": "original text"
        },
        "slot name": {
          "resolutions" : [
            { "value": "resolved value" },
            { "value": "resolved value" }
          ],
          "originalValue": "original text"
        }
      },
      "confirmationStatus": "None, Confirmed, or Denied (intent confirmation, if configured)"
    }
  ],
  "bot": {
    "name": "bot name",
    "alias": "bot alias",
    "version": "bot version"
  },
  "userId": "User ID specified in the POST request to Amazon Lex.",
  "inputTranscript": "Text used to process the request",
  "invocationSource": "FulfillmentCodeHook or DialogCodeHook",
  "outputDialogMode": "Text or Voice, based on ContentType request header in runtime API request",
  "messageVersion": "1.0",
  "sessionAttributes": { 
     "key": "value",
     "key": "value"
  },
  "requestAttributes": { 
     "key": "value",
     "key": "value"
  },
  "recentIntentSummaryView": [
    {
        "intentName": "Name",
        "checkpointLabel": Label,
        "slots": {
          "slot name": "value",
          "slot name": "value"
        },
        "confirmationStatus": "None, Confirmed, or Denied (intent confirmation, if configured)",
        "dialogActionType": "ElicitIntent, ElicitSlot, ConfirmIntent, Delegate, or Close",
        "fulfillmentState": "Fulfilled or Failed",
        "slotToElicit": "Next slot to elicit"
    }
  ],
   "sentimentResponse": { 
      "sentimentLabel": "sentiment",
      "sentimentScore": "score"
   },
   "kendraResponse": {
       Complete query response from Amazon Kendra
   },
   "activeContexts": [
        {
            "timeToLive": {
                "timeToLiveInSeconds": seconds,
                "turnsToLive": turns
            },
            "name": "name",
            "parameters": {
                "key name": "value"
            }
        }
    ]
}
```

Notez les informations supplémentaires suivantes à propos des champs d'événement :
+ **currentIntent** – Fournit les champs d'intention `name`, `slots`, `slotDetails` et `confirmationStatus`.

   

  `nluIntentConfidenceScore`est la certitude qu'a Amazon Lex que l'intention actuelle est celle qui correspond le mieux à l'intention actuelle de l'utilisateur.

   

  `slots`est une carte des noms d'emplacements, configurés à cette fin, par rapport aux valeurs d'emplacements reconnues par Amazon Lex lors de la conversation avec l'utilisateur. Une valeur d'option reste null jusqu'à ce que l'utilisateur fournisse une valeur. 

   

  La valeur d'option dans l'événement d'entrée peut ne pas correspondre à l'une des valeurs configurées pour l'option. Par exemple, si l'utilisateur répond à la question « Quelle couleur de voiture souhaitez-vous ? » avec « pizza », Amazon Lex renverra « pizza » comme valeur de la machine à sous. Votre fonction doit valider les valeurs pour vous assurer qu'elles respectent le contexte.

   

  `slotDetails` fournit des informations supplémentaires sur une valeur d'option. Le tableau `resolutions` contient une liste de valeurs supplémentaires reconnues pour l'option. Chaque option peut avoir un maximum de cinq valeurs.

   

  Le champ `originalValue` contient la valeur qui a été saisie par l'utilisateur pour l'option. Lorsque le type d'option est configuré pour renvoyer la valeur de résolution supérieure comme valeur d'option, la valeur `originalValue` peut être différente de la valeur qui se trouve dans le champ `slots`.

   

  `confirmationStatus` fournit à l'utilisateur une réponse à un message de confirmation, le cas échéant. Par exemple, si Amazon Lex demande « Voulez-vous commander une grosse pizza au fromage ? , » en fonction de la réponse de l'utilisateur, la valeur de ce champ peut être `Confirmed` ou`Denied`. Sinon, la valeur de ce champ est `None`. 

   

  Si l'utilisateur confirme son intention, Amazon Lex définit ce champ sur`Confirmed`. Si l'utilisateur nie l'intention, Amazon Lex définit cette valeur sur`Denied`.

   

  Dans la réponse de confirmation, un énoncé utilisateur peut fournir des mises à jour d'option. Par exemple, l'utilisateur peut dire « yes, change size to medium. ». Dans ce cas, la valeur de slot mise à jour de l'événement Lambda suivant est `PizzaSize` définie sur. `medium` Amazon Lex définit le `confirmationStatus` to`None`, car l'utilisateur a modifié certaines données d'emplacement, ce qui nécessite la fonction Lambda pour effectuer la validation des données utilisateur.

   
+ **AlternativeIntents** : si vous activez les scores de confiance, Amazon Lex renvoie jusqu'à quatre intentions alternatives. Chaque intention inclut un score qui indique le niveau de confiance d'Amazon Lex quant au fait que l'intention est la bonne en fonction de l'énoncé de l'utilisateur. 

   

  Le contenu des intentions alternatives est identique à celui du `currentIntent` champ. Pour de plus amples informations, veuillez consulter [Utilisation des scores de confiance](confidence-scores.md).

   
+ **bot** – Informations concernant le bot qui a traité la demande.
  + `name` – Nom du bot qui a traité la demande.
  + `alias` – Alias de la version du bot qui a traité la demande.
  + `version` – Version du bot qui a traité la demande.

   
+ **UserId** — Cette valeur est fournie par l'application cliente. Amazon Lex le transmet à la fonction Lambda. 

   
+ **inputTranscript** – Texte utilisé pour traiter la demande.

  Si l'entrée correspond à du texte, le champ `inputTranscript` contient le texte qui a été saisi par l'utilisateur.

   

  Si l'entrée correspond à un flux audio, le champ `inputTranscript` contient le texte extraite du flux audio. Il s'agit du texte qui est réellement traité pour reconnaître les intentions et les valeurs d'option. 

   
+ **InvocationSource** — Pour indiquer pourquoi Amazon Lex appelle la fonction Lambda, il lui attribue l'une des valeurs suivantes : 
  + `DialogCodeHook`— Amazon Lex définit cette valeur pour demander à la fonction Lambda d'initialiser la fonction et de valider les données saisies par l'utilisateur. 

     

    Lorsque l'intention est configurée pour invoquer une fonction Lambda en tant que crochet de code d'initialisation et de validation, Amazon Lex invoque la fonction Lambda spécifiée sur chaque entrée utilisateur (énoncé) une fois qu'Amazon Lex a compris l'intention. 
**Note**  
Si l'intention n'est pas claire, Amazon Lex ne peut pas appeler la fonction Lambda.

     
  + `FulfillmentCodeHook`— Amazon Lex définit cette valeur pour indiquer à la fonction Lambda de répondre à une intention.

     

    Si l'intention est configurée pour invoquer une fonction Lambda en tant que hook de code d'expédition, Amazon Lex définit cette valeur uniquement après avoir obtenu toutes les données d'emplacement nécessaires pour répondre à l'intention. `invocationSource` 

     

  Dans votre configuration d'intention, vous pouvez disposer de deux fonctions Lambda distinctes pour initialiser et valider les données utilisateur et pour répondre à l'intention. Vous pouvez également utiliser une fonction Lambda pour effectuer les deux. Dans ce cas, votre fonction Lambda peut utiliser la `invocationSource` valeur pour suivre le chemin de code correct.

    
+ **outputDialogMode**— Pour chaque entrée utilisateur, le client envoie la demande à Amazon Lex à l'aide de l'une des opérations d'API d'exécution, [PostContent](API_runtime_PostContent.md) ou[PostText](API_runtime_PostText.md). Amazon Lex utilise les paramètres de demande pour déterminer si la réponse au client est textuelle ou vocale, et définit ce champ en conséquence.

   

  La fonction Lambda peut utiliser ces informations pour générer un message approprié. Par exemple, si le client attend une réponse vocale, votre fonction Lambda peut renvoyer le langage SSML (Speech Synthesis Markup Language) au lieu du texte.

   
+ **MessageVersion** : version du message qui identifie le format des données d'événement entrées dans la fonction Lambda et le format attendu de la réponse d'une fonction Lambda. 
**Note**  
Vous configurez cette valeur lorsque vous définissez une intention. Dans l'implémentation actuelle, seule la version de message 1.0 est prise en charge. Par conséquent, la console prend la valeur par défaut 1.0 et n'affiche pas la version de message.
+ **SessionAttributes** — Attributs de session spécifiques à l'application que le client envoie dans la demande. Si vous souhaitez qu'Amazon Lex les inclue dans la réponse au client, votre fonction Lambda doit les renvoyer à Amazon Lex dans la réponse. Pour de plus amples informations, consultez [Définition des attributs de session](context-mgmt-session-attribs.md).

   
+ **RequestAttributes** — Attributs spécifiques à la demande que le client envoie dans la demande. Utilisez les attributs de demande pour transmettre des informations qui n'ont pas besoin de persister pendant la totalité de la session. S'il n'y a pas d'attributs de demandes, cette valeur est null. Pour de plus amples informations, consultez [Définition des attributs de demandes](context-mgmt-request-attribs.md).

   
+ **recentIntentSummaryAfficher** : informations relatives à l'état d'une intention. Vous pouvez voir des informations sur les trois dernières intentions utilisées. Vous pouvez utiliser ces informations pour définir des valeurs dans l'intention ou pour revenir à une intention précédente. Pour de plus amples informations, veuillez consulter [Gestion des sessions avec l'API Amazon Lex](how-session-api.md).

   
+ **SentimentResponse** : résultat d'une analyse des sentiments d'Amazon Comprehend concernant le dernier énoncé. Vous pouvez utiliser ces informations pour gérer le flux de conversation de votre bot en fonction du sentiment exprimé par l'utilisateur. Pour de plus amples informations, veuillez consulter [Analyse de sentiment](sentiment-analysis.md). 

   
+ **KendraResponse** : résultat d'une requête envoyée à un index Amazon Kendra. Présent uniquement dans l'entrée d’un hook de code d’exécution et uniquement lorsque l'intention étend l'intention intégrée `AMAZON.KendraSearchIntent`. Le champ contient la réponse complète de la recherche Amazon Kendra. Pour de plus amples informations, veuillez consulter [AMAZON.KendraSearchIntent](built-in-intent-kendra-search.md).

   
+ **ActiveContexts** — Un ou plusieurs contextes actifs au cours de cette phase de conversation avec l'utilisateur.
  + **timeToLive**— La durée ou le nombre de tours de conversation avec l'utilisateur pendant lesquels le contexte reste actif.
  + **name** — le nom du contexte.
  + **paramètres** une liste de key/value paires contenant le nom et la valeur des emplacements correspondant à l'intention qui a activé le contexte.

  Pour de plus amples informations, veuillez consulter [Définition du contexte d'intention](context-mgmt-active-context.md).

## Format de la réponse
<a name="using-lambda-response-format"></a>

Amazon Lex attend une réponse d'une fonction Lambda au format suivant :

```
{
  "sessionAttributes": {
    "key1": "value1",
    "key2": "value2"
    ...
  },
  "recentIntentSummaryView": [
    {
       "intentName": "Name",
       "checkpointLabel": "Label",
       "slots": {
         "slot name": "value",
         "slot name": "value"
        },
       "confirmationStatus": "None, Confirmed, or Denied (intent confirmation, if configured)",
        "dialogActionType": "ElicitIntent, ElicitSlot, ConfirmIntent, Delegate, or Close",
        "fulfillmentState": "Fulfilled or Failed",
        "slotToElicit": "Next slot to elicit"
    }
  ],
  "activeContexts": [
     {
       "timeToLive": {
          "timeToLiveInSeconds": seconds,
          "turnsToLive": turns
      },
      "name": "name",
      "parameters": {
        "key name": "value"
      }
    }
  ],
  "dialogAction": {
    "type": "ElicitIntent, ElicitSlot, ConfirmIntent, Delegate, or Close",
    Full structure based on the type field. See below for details.
  }
}
```

La réponse comprend quatre champs. Les `activeContexts` champs `sessionAttributes``recentIntentSummaryView`, et sont facultatifs, le `dialogAction` champ est obligatoire. Le contenu du champ `dialogAction` dépend de la valeur du champ `type`. Pour en savoir plus, consultez [dialogAction](#lambda-response-dialogAction).

### sessionAttributes
<a name="lambda-response-sessionAttributes"></a>

Facultatif. Si vous incluez le champ `sessionAttributes`, il peut être vide. Si votre fonction Lambda ne renvoie pas les attributs de session, les derniers attributs connus `sessionAttributes` transmis via l'API ou la fonction Lambda sont conservés. Pour plus d'informations, consultez les opérations [PostContent](API_runtime_PostContent.md) et [PostText](API_runtime_PostText.md).

```
  "sessionAttributes": { 
     "key1": "value1",
     "key2": "value2"
  }
```

### recentIntentSummaryAfficher
<a name="lambda-response-recentIntentSummaryView"></a>

Facultatif. S'il est inclus, définit des valeurs pour une ou plusieurs intentions récentes. Vous pouvez inclure des informations pour trois intentions au maximum. Par exemple, vous pouvez définir des valeurs pour des intentions précédentes en fonction des informations collectées par l'intention actuelle. Les informations du récapitulatif doivent être valides pour l'intention. Par exemple, le nom de l'intention doit être une intention dans le bot. Si vous incluez une valeur d'emplacement dans la vue récapitulative, l'emplacement doit exister dans l'intention. Si vous n'incluez pas `recentIntentSummaryView` dans votre réponse, toutes les valeurs des intentions récentes restent inchangées. Pour plus d'informations, consultez l'opération [PutSession](API_runtime_PutSession.md) ou le type de données [IntentSummary](API_runtime_IntentSummary.md).

```
"recentIntentSummaryView": [
    {
       "intentName": "Name",
       "checkpointLabel": "Label",
       "slots": {
         "slot name": "value",
         "slot name": "value"
        },
       "confirmationStatus": "None, Confirmed, or Denied (intent confirmation, if configured)",
        "dialogActionType": "ElicitIntent, ElicitSlot, ConfirmIntent, Delegate, or Close",
        "fulfillmentState": "Fulfilled or Failed",
        "slotToElicit": "Next slot to elicit"
    }
  ]
```

### Contextes actifs
<a name="lambda-response-context"></a>

Facultatif. S'il est inclus, définit la valeur pour un ou plusieurs contextes. Par exemple, vous pouvez inclure un contexte pour qu'une ou plusieurs intentions ayant ce contexte comme entrée puissent être reconnues lors de la prochaine étape de la conversation.

Tous les contextes actifs qui ne sont pas inclus dans la réponse voient leurs time-to-live valeurs décrémentées et peuvent toujours être actifs lors de la prochaine demande. 

Si vous spécifiez une valeur time-to-live de 0 pour un contexte inclus dans l'événement d'entrée, il sera inactif lors de la prochaine demande.

Pour de plus amples informations, veuillez consulter [Définition du contexte d'intention](context-mgmt-active-context.md).

### dialogAction
<a name="lambda-response-dialogAction"></a>

Obligatoire. Le `dialogAction` champ indique à Amazon Lex la marche à suivre et décrit ce à quoi il doit s'attendre de la part de l'utilisateur une fois qu'Amazon Lex a renvoyé une réponse au client.

Le champ `type` indique l'action suivante. Il détermine également les autres champs que la fonction Lambda doit fournir dans le cadre de la `dialogAction` valeur.
+ `Close`— Informe Amazon Lex de ne pas attendre de réponse de la part de l'utilisateur. Par exemple, « Votre commande de pizza a été passée » ne nécessite pas de réponse.

   

  Le champ `fulfillmentState` est obligatoire. Amazon Lex utilise cette valeur pour définir le `dialogState` champ dans la [PostText](API_runtime_PostText.md) réponse [PostContent](API_runtime_PostContent.md) ou l'application cliente. Les champs `message` et `responseCard` sont facultatifs. Si vous ne spécifiez aucun message, Amazon Lex utilise le message d'adieu ou le message de suivi configuré en fonction de l'intention.

  ```
  "dialogAction": {
      "type": "Close",
      "fulfillmentState": "Fulfilled or Failed",
      "message": {
        "contentType": "PlainText or SSML or CustomPayload",
        "content": "Message to convey to the user. For example, Thanks, your pizza has been ordered."
      },
     "responseCard": {
        "version": integer-value,
        "contentType": "application/vnd.amazonaws.card.generic",
        "genericAttachments": [
            {
               "title":"card-title",
               "subTitle":"card-sub-title",
               "imageUrl":"URL of the image to be shown",
               "attachmentLinkUrl":"URL of the attachment to be associated with the card",
               "buttons":[ 
                   {
                      "text":"button-text",
                      "value":"Value sent to server on button click"
                   }
                ]
             } 
         ] 
       }
    }
  ```
+ `ConfirmIntent`— Informe Amazon Lex que l'utilisateur doit répondre par oui ou par non pour confirmer ou infirmer l'intention actuelle.

   

  Vous devez inclure les champs `intentName` et `slots`. Le champ `slots` doit contenir une entrée pour chacune des options complétées pour l'intention spécifiée. Vous n'avez pas besoin d'inclure une entrée dans le champ `slots` pour les options qui ne sont pas complétées. Vous devez inclure le champ `message` si le champ `confirmationPrompt` de l'intention est null. Le contenu du `message` champ renvoyé par la fonction Lambda a priorité sur le contenu `confirmationPrompt` spécifié dans l'intention. Le champ `responseCard` est facultatif. 

  ```
  "dialogAction": {
      "type": "ConfirmIntent",
      "message": {
        "contentType": "PlainText or SSML or CustomPayload",
        "content": "Message to convey to the user. For example, Are you sure you want a large pizza?"
      },
     "intentName": "intent-name",
     "slots": {
        "slot-name": "value",
        "slot-name": "value",
        "slot-name": "value"  
     },
     "responseCard": {
        "version": integer-value,
        "contentType": "application/vnd.amazonaws.card.generic",
        "genericAttachments": [
            {
               "title":"card-title",
               "subTitle":"card-sub-title",
               "imageUrl":"URL of the image to be shown",
               "attachmentLinkUrl":"URL of the attachment to be associated with the card",
               "buttons":[ 
                   {
                      "text":"button-text",
                      "value":"Value sent to server on button click"
                   }
                ]
             } 
         ] 
       }
    }
  ```
+ `Delegate`— Demande à Amazon Lex de choisir le plan d'action suivant en fonction de la configuration du bot. Si la réponse n'inclut aucun attribut de session, Amazon Lex conserve les attributs existants. Si vous souhaitez qu'une valeur d'option soit null, vous n'avez pas besoin d'inclure le champ d'option dans la demande. Vous recevez une exception `DependencyFailedException` si la fonction de traitement renvoie l'action de dialogue `Delegate` sans supprimer d'options.

  Les champs `kendraQueryFilterString` et `kendraQueryRequestPayload` sont facultatifs et utilisés uniquement lorsque l'intention est dérivée de l'intention intégrée `AMAZON.KendraSearchIntent`. Pour de plus amples informations, veuillez consulter [AMAZON.KendraSearchIntent](built-in-intent-kendra-search.md).

  ```
    "dialogAction": {
     "type": "Delegate",
     "slots": {
        "slot-name": "value",
        "slot-name": "value",
        "slot-name": "value"  
     },
     "kendraQueryRequestPayload": "Amazon Kendra query",
     "kendraQueryFilterString": "Amazon Kendra attribute filters"
    }
  ```
+ `ElicitIntent`— Informe Amazon Lex que l'utilisateur est censé répondre par un énoncé contenant une intention. Par exemple, « Je veux un grand pizza », qui indique l'intention `OrderPizzaIntent`. L'énoncé « large », en revanche, n'est pas suffisant pour qu'Amazon Lex puisse déduire l'intention de l'utilisateur.

   

  Les champs `message` et `responseCard` sont facultatifs. Si vous ne fournissez pas de message, Amazon Lex utilise l'une des instructions de clarification du bot. Si aucune invite de clarification n'est définie, Amazon Lex renvoie une exception 400 Bad Request.

  ```
  {
    "dialogAction": {
      "type": "ElicitIntent",
      "message": {
        "contentType": "PlainText or SSML or CustomPayload",
        "content": "Message to convey to the user. For example, What can I help you with?"
      },
      "responseCard": {
        "version": integer-value,
        "contentType": "application/vnd.amazonaws.card.generic",
        "genericAttachments": [
            {
               "title":"card-title",
               "subTitle":"card-sub-title",
               "imageUrl":"URL of the image to be shown",
               "attachmentLinkUrl":"URL of the attachment to be associated with the card",
               "buttons":[ 
                   {
                      "text":"button-text",
                      "value":"Value sent to server on button click"
                   }
                ]
             } 
         ] 
      }
   }
  ```
+ `ElicitSlot`— Informe Amazon Lex que l'utilisateur est censé fournir une valeur d'emplacement dans la réponse.

   

  Les champs obligatoires sont `intentName`, `slotToElicit` et `slots`. Les champs `message` et `responseCard` sont facultatifs. Si vous ne spécifiez aucun message, Amazon Lex utilise l'une des invites de sélection d'emplacements configurées pour l'emplacement. 

  ```
    "dialogAction": {
      "type": "ElicitSlot",
      "message": {
        "contentType": "PlainText or SSML or CustomPayload",
        "content": "Message to convey to the user. For example, What size pizza would you like?"
      },
     "intentName": "intent-name",
     "slots": {
        "slot-name": "value",
        "slot-name": "value",
        "slot-name": "value"  
     },
     "slotToElicit" : "slot-name",
     "responseCard": {
        "version": integer-value,
        "contentType": "application/vnd.amazonaws.card.generic",
        "genericAttachments": [
            {
               "title":"card-title",
               "subTitle":"card-sub-title",
               "imageUrl":"URL of the image to be shown",
               "attachmentLinkUrl":"URL of the attachment to be associated with the card",
               "buttons":[ 
                   {
                      "text":"button-text",
                      "value":"Value sent to server on button click"
                   }
                ]
             } 
         ] 
       }
    }
  ```

# Amazon Lex et AWS Lambda Blueprints
<a name="lex-lambda-blueprints"></a>

La console Amazon Lex fournit des exemples de robots (appelés plans de bot) préconfigurés afin que vous puissiez rapidement créer et tester un bot dans la console. Pour chacun de ces plans de bot, des plans de fonction Lambda sont également fournis. Ces modèles de présentation fournissent un exemple de code qui fonctionne avec les bots correspondants. Vous pouvez utiliser ces plans pour créer rapidement un bot configuré avec une fonction Lambda comme crochet de code et tester end-to-end la configuration sans avoir à écrire de code.

Vous pouvez utiliser les plans de bot Amazon Lex suivants et les plans de AWS Lambda fonction correspondants comme crochets de code pour les robots : 
+ Plan Amazon Lex — `OrderFlowers`
  + AWS Lambda plan — `lex-order-flowers-python`
+ Plan Amazon Lex — `ScheduleAppointment` 
  + AWS Lambda plan — `lex-make-appointment-python`
+ Plan Amazon Lex — `BookTrip`
  + AWS Lambda plan — `lex-book-trip-python`

Pour créer un bot à l'aide d'un plan et le configurer pour qu'il utilise une fonction Lambda comme crochet de code, voir. [Exercice 1 : créer un robot Amazon Lex à l'aide d'un plan (console)](gs-bp.md) Pour obtenir un exemple d'utilisation d'autres modèles de présentation, consultez [Exemples supplémentaires : création de robots Amazon Lex](additional-exercises.md).

## Mettre à jour un plan pour un environnement régional spécifique
<a name="blueprint-update-locale"></a>

Si vous utilisez un plan dans une langue autre que l'anglais (États-Unis) (en-US), vous devez mettre à jour le nom de toutes les intentions pour inclure les paramètres régionaux. Par exemple, si vous utilisez le `OrderFlowers` plan, vous devez procéder comme suit.
+ Trouvez la `dispatch` fonction à la fin du code de fonction Lambda.
+ Dans la `dispatch` fonction, mettez à jour le nom de l'intention pour inclure les paramètres régionaux que vous utilisez. Par exemple, si vous utilisez les paramètres régionaux anglais (australien) (en-AU), modifiez la ligne :

  `if intent_name == 'OrderFlowers':`

  to

  `if intent_name == 'OrderFlowers_enAU':`

Les autres plans utilisent d'autres noms d'intention, ils doivent être mis à jour comme indiqué ci-dessus avant de les utiliser.