

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.

# Associer une AWS Lambda fonction à un bot Amazon Lex V2 à l'aide des opérations d'API
<a name="lambda-attach-api"></a>

Vous devez d'abord associer une fonction Lambda à l'alias de votre bot Amazon Lex V2 avant de pouvoir l'invoquer. Vous ne pouvez associer qu'une seule fonction Lambda à chaque alias de bot. Procédez comme suit pour associer la fonction Lambda à l'aide d'opérations d'API. 

Si vous créez un nouvel alias de bot, utilisez l'[CreateBotAlias](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateBotAlias.html)opération pour associer une fonction Lambda. Pour associer une fonction Lambda à un alias de bot existant, utilisez l'[UpdateBotAlias](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateBotAlias.html)opération. Modifiez le `botAliasLocaleSettings` champ pour qu'il contienne les paramètres appropriés :

```
{
    "botAliasLocaleSettings" : {
        locale: {
            "codeHookSpecification": {
                "lambdaCodeHook": {
                    "codeHookInterfaceVersion": "1.0",
                    "lambdaARN": "arn:aws:lambda:region:account-id:function:function-name"
                }
            },
            "enabled": true
        },
        ...
    }
}
```

1. Le `botAliasLocaleSettings` champ correspond à un objet dont les clés sont les paramètres régionaux auxquels vous souhaitez associer la fonction Lambda. Consultez [Langues et paramètres régionaux pris en charge](how-languages.md#supported-languages) la liste des paramètres régionaux pris en charge et les codes des clés valides.

1. `lambdaARN`Pour rechercher une fonction Lambda, ouvrez la AWS Lambda console d'[https://console.aws.amazon.com/lambda/accueil](https://console.aws.amazon.com/lambda/home), sélectionnez **Fonctions** dans la barre latérale gauche, puis sélectionnez la fonction à associer à l'alias du bot. Sur le côté droit de la **vue d'ensemble des fonctions**, trouvez le `lambdaARN` sous-onglet **Function ARN**. Il doit contenir une région, un identifiant de compte et le nom de la fonction.

1. Pour permettre à Amazon Lex V2 d'appeler la fonction Lambda pour l'alias, définissez le `enabled` champ sur. `true`

**Définition de l'intention d'Amazon Lex V2 d'invoquer une fonction Lambda à l'aide d'opérations d'API**

Pour configurer l'invocation de la fonction Lambda lors d'une intention, utilisez l'[CreateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html)opération si vous créez une nouvelle intention ou l'[UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html)opération si vous appelez la fonction dans une intention existante. Les champs qui contrôlent l'invocation de la fonction Lambda dans les opérations d'intention sont`dialogCodeHook`,`initialResponseSetting`, `intentConfirmationSetting` et. `fulfillmentCodeHook`

Si vous invoquez la fonction pendant l'élicitation d'un emplacement, utilisez l'[CreateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateSlot.html)opération si vous créez un nouvel emplacement ou l'[UpdateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateSlot.html)opération pour appeler la fonction dans un emplacement existant. Le champ qui contrôle l'invocation de la fonction Lambda dans les opérations de slot est celui `slotCaptureSetting` de l'objet. `valueElicitationSetting`

1. Pour configurer le crochet de code de la boîte de dialogue Lambda pour qu'il s'exécute après chaque tour de conversation, définissez le `enabled` champ de l'[DialogCodeHookSettings](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogCodeHookSettings.html)objet suivant dans le `dialogCodeHook` champ comme suit : `true`

   ```
   "dialogCodeHook": {
       "enabled": boolean
   }
   ```

1. Vous pouvez également configurer le crochet de code de la boîte de dialogue Lambda pour qu'il ne s'exécute qu'à des moments spécifiques des conversations en modifiant le `codeHook` and/or `elicitationCodeHook` champ des structures correspondant aux étapes de conversation auxquelles vous souhaitez appeler la fonction. Pour utiliser le crochet de code de la boîte de dialogue Lambda pour répondre à une intention, utilisez le `fulfillmentCodeHook` champ dans l'opération [CreateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html)ou [UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html). Les structures et les utilisations de ces trois types de code hooks sont les suivantes :

## Crochet à code
<a name="lambda-code-hook"></a>

Le `codeHook` champ définit les paramètres du crochet de code à exécuter à un stade donné de la conversation. Il s'agit d'un [DialogCodeHookInvocationSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogCodeHookInvocationSetting.html)objet dont la structure est la suivante :

```
"codeHook": {
    "active": boolean,
    "enableCodeHookInvocation": boolean,
    "invocationLabel": string,
    "postCodeHookSpecification": [PostDialogCodeHookInvocationSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostDialogCodeHookInvocationSpecification.html),
}
```
+ Modifiez le `active` champ `true` pour qu'Amazon Lex V2 appelle le code hook à ce stade de la conversation.
+ Modifiez le `enableCodeHookInvocation` champ `true` pour Amazon Lex V2 afin de permettre au crochet de code de s'exécuter normalement. Si vous le marquez`false`, Amazon Lex V2 agit comme si le code hook avait été renvoyé avec succès.
+ `invocationLabel`Indique l'étape de dialogue à partir de laquelle le crochet de code est invoqué.
+ Utilisez le `postCodeHookSpecification` champ pour spécifier les actions et les messages qui se produisent après la réussite, l'échec ou l'expiration du délai d'expiration du crochet de code.

## elicitationCodeHook
<a name="lambda-elicitation-code-hook"></a>

Le `elicitationCodeHook` champ définit les paramètres du crochet de code à exécuter dans le cas où un ou plusieurs emplacements doivent être réactivés. Ce scénario peut se produire si l'obtention d'un créneau échoue ou si la confirmation de l'intention est refusée. Le `elicitationCodeHook` champ est un [ElicitationCodeHookInvocationSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ElicitationCodeHookInvocationSetting.html)objet dont la structure est la suivante :

```
"elicitationCodeHook": {
    "enableCodeHookInvocation": boolean,
    "invocationLabel": string
}
```
+ Modifiez le `enableCodeHookInvocation` champ `true` pour Amazon Lex V2 afin de permettre au crochet de code de s'exécuter normalement. Si vous le marquez`false`, Amazon Lex V2 agit comme si le code hook avait été renvoyé avec succès.
+ `invocationLabel`Indique l'étape de dialogue à partir de laquelle le crochet de code est invoqué.

## fulfillmentCodeHook
<a name="lambda-fulfillment-code-hook"></a>

Le `fulfillmentCodeHook` champ définit les paramètres du crochet de code à exécuter pour répondre à l'intention. Il correspond à l'[FulfillmentCodeHookSettings](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentCodeHookSettings.html)objet suivant :

```
"fulfillmentCodeHook": {
    "active": boolean,
    "enabled": boolean,
    "fulfillmentUpdatesSpecification": [FulfillmentUpdatesSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentUpdatesSpecification.html),
    "postFulfillmentStatusSpecification": [PostFulfillmentStatusSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostFulfillmentStatusSpecification.html)
}
```
+ Modifiez le `active` champ `true` pour qu'Amazon Lex V2 appelle le code hook à ce stade de la conversation.
+ Modifiez le `enabled` champ `true` pour Amazon Lex V2 afin de permettre au crochet de code de s'exécuter normalement. Si vous le marquez`false`, Amazon Lex V2 agit comme si le code hook avait été renvoyé avec succès.
+ Utilisez le `fulfillmentUpdatesSpecification` champ pour spécifier les messages qui semblent informer l'utilisateur lors de la réalisation de l'intention et le moment qui leur est associé.
+ Utilisez le `postFulfillmentStatusSpecification` champ pour spécifier les messages et les actions qui se produisent après la réussite, l'échec ou l'expiration du délai d'expiration du crochet de code.

Vous pouvez invoquer le crochet de code Lambda aux points suivants d'une conversation en définissant les `enabled` champs `active` et`enableCodeHookInvocation`/sur : `true`

## Lors de la réponse initiale
<a name="lambda-hook-initial-response"></a>

Pour appeler la fonction Lambda dans la réponse initiale une fois l'intention reconnue, utilisez la `codeHook` structure dans le `initialResponse` champ de l'opération [CreateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html)or [UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html). Le `initialResponse` champ correspond à l'[InitialResponseSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_InitialResponseSetting.html)objet suivant :

```
"initialResponse": {
    "codeHook": {
        "active": boolean,
        "enableCodeHookInvocation": boolean,
        "invocationLabel": string,
        "postCodeHookSpecification": [PostDialogCodeHookInvocationSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostDialogCodeHookInvocationSpecification.html),
    },
    "initialResponse": [FulfillmentUpdatesSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentUpdatesSpecification.html),
    "nextStep": [PostFulfillmentStatusSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostFulfillmentStatusSpecification.html),
    "conditional": [ConditionalSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ConditionalSpecification.html)
}
```

## Après l'obtention des créneaux ou pendant la réélection des créneaux
<a name="lambda-hook-elicit-slot"></a>

Pour appeler la fonction Lambda après avoir obtenu une valeur d'emplacement, utilisez le `slotCaptureSetting` champ situé dans le `valueElicitation` champ de l'opération or. [CreateSlot[UpdateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateSlot.html)](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateSlot.html) Le `slotCaptureSetting` champ correspond à l'[SlotCaptureSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_SlotCaptureSetting.html)objet suivant :

```
"slotCaptureSetting": {
    "captureConditional": [ConditionalSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ConditionalSpecification.html),
    "captureNextStep": [DialogState object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogState.html),
    "captureResponse": [ResponseSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ResponseSpecification.html),
    "codeHook": {
        "active": true,
        "enableCodeHookInvocation": true,
        "invocationLabel": string,
        "postCodeHookSpecification": [PostDialogCodeHookInvocationSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostDialogCodeHookInvocationSpecification.html),
    },
    "elicitationCodeHook": {
        "enableCodeHookInvocation": boolean,
        "invocationLabel": string
    },
    "failureConditional": [ConditionalSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ConditionalSpecification.html),
    "failureNextStep": [DialogState object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogState.html),
    "failureResponse": [ResponseSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ResponseSpecification.html)
}
```
+ Pour appeler la fonction Lambda une fois que l'élicitation des emplacements est réussie, utilisez le champ. `codeHook`
+ Pour appeler la fonction Lambda après l'échec de l'élicitation des emplacements et qu'Amazon Lex V2 tente à nouveau de les activer, utilisez le champ. `elicitationCodeHook`

## Après confirmation ou refus de l'intention
<a name="lambda-hook-confirm-intent"></a>

Pour appeler la fonction Lambda lors de la confirmation d'une intention, utilisez le `intentConfirmationSetting` champ de l'opération [CreateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html)or [UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html). Le `intentConfirmation` champ correspond à l'[IntentConfirmationSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_IntentConfirmationSetting.html)objet suivant :

```
"intentConfirmationSetting": {
    "active": boolean,
    "codeHook": {
        "active": boolean,
        "enableCodeHookInvocation": boolean,
        "invocationLabel": string,
        "postCodeHookSpecification": [PostDialogCodeHookInvocationSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostDialogCodeHookInvocationSpecification.html),
    },
    "confirmationConditional": [ConditionalSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ConditionalSpecification.html),
    "confirmationNextStep": [DialogState object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogState.html),
    "confirmationResponse": [ResponseSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialResponseSpecificationogState.html),
    "declinationConditional": [ConditionalSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ConditionalSpecification.html),
    "declinationNextStep": [FulfillmentUpdatesSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentUpdatesSpecification.html),
    "declinationResponse": [PostFulfillmentStatusSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostFulfillmentStatusSpecification.html),
    "elicitationCodeHook": {
        "enableCodeHookInvocation": boolean,
        "invocationLabel": string,
    },
    "failureConditional": [ConditionalSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ConditionalSpecification.html),
    "failureNextStep": [DialogState object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogState.html),
    "failureResponse": [ResponseSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ResponseSpecification.html),
    "promptSpecification": [PromptSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PromptSpecification.html)
}
```
+ Pour appeler la fonction Lambda une fois que l'utilisateur a confirmé l'intention et ses emplacements, utilisez le `codeHook` champ.
+ Pour appeler la fonction Lambda une fois que l'utilisateur a refusé la confirmation de l'intention et qu'Amazon Lex V2 a tenté à nouveau d'obtenir des emplacements, utilisez le champ. `elicitationCodeHook`

## Pendant la réalisation de l'intention
<a name="lambda-hook-fulfill-intent"></a>

Pour appeler la fonction Lambda afin de répondre à une intention, utilisez le `fulfillmentCodeHook` champ dans l'opération [CreateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html)or [UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html). Le `fulfillmentCodeHook` champ correspond à l'[FulfillmentCodeHookSettings](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentCodeHookSettings.html)objet suivant :

```
{
    "active": boolean,
    "enabled": boolean,
    "fulfillmentUpdatesSpecification": [FulfillmentUpdatesSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentUpdatesSpecification.html),
    "postFulfillmentStatusSpecification": [PostFulfillmentStatusSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostFulfillmentStatusSpecification.html)
}
```

3. Une fois que vous avez défini les étapes de conversation auxquelles vous devez invoquer la fonction Lambda, utilisez l'`BuildBotLocale`opération pour reconstruire le bot afin de tester la fonction.