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 à l'aide d'opérations d'API
Vous devez d'abord associer une fonction Lambda à l'alias de votre bot 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'CreateBotAliasopération pour associer une fonction Lambda. Pour associer une fonction Lambda à un alias de bot existant, utilisez l'UpdateBotAliasopé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 }, ... } }
-
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 la liste des paramètres régionaux pris en charge et les codes des clés valides. -
lambdaARN
Pour rechercher une fonction Lambda, ouvrez la AWS Lambda console d'https://console.aws.amazon.com/lambda/accueil, 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 l'aperçu 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. -
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'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'CreateIntentopération si vous créez une nouvelle intention ou l'UpdateIntentopé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 sontdialogCodeHook
,initialResponseSetting
, intentConfirmationSetting
et. fulfillmentCodeHook
Si vous invoquez la fonction pendant l'élicitation d'un emplacement, utilisez l'CreateSlotopération si vous créez un nouvel emplacement ou l'UpdateSlotopé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
-
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'DialogCodeHookSettingsobjet suivant dans ledialogCodeHook
champ comme suit :true
"dialogCodeHook": { "enabled":
boolean
} -
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
elicitationCodeHook
champcodeHook
et/ou dans les 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 lefulfillmentCodeHook
champ dans l'opération CreateIntentou UpdateIntent. Les structures et les utilisations de ces trois types de code hooks sont les suivantes :
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 DialogCodeHookInvocationSettingobjet dont la structure est la suivante :
"codeHook": { "active":
boolean
, "enableCodeHookInvocation":boolean
, "invocationLabel":string
, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }
-
Modifiez le
active
champtrue
pour qu'Amazon Lex V2 appelle le code hook à ce stade de la conversation. -
Modifiez le
enableCodeHookInvocation
champtrue
pour Amazon Lex V2 afin de permettre au crochet de code de s'exécuter normalement. Si vous le marquezfalse
, 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.
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 ElicitationCodeHookInvocationSettingobjet dont la structure est la suivante :
"elicitationCodeHook": { "enableCodeHookInvocation":
boolean
, "invocationLabel":string
}
-
Modifiez le
enableCodeHookInvocation
champtrue
pour Amazon Lex V2 afin de permettre au crochet de code de s'exécuter normalement. Si vous le marquezfalse
, 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é.
Le fulfillmentCodeHook
champ définit les paramètres du crochet de code à exécuter pour répondre à l'intention. Il correspond à l'FulfillmentCodeHookSettingsobjet suivant :
"fulfillmentCodeHook": { "active":
boolean
, "enabled":boolean
, "fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object, "postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object }
-
Modifiez le
active
champtrue
pour qu'Amazon Lex V2 appelle le code hook à ce stade de la conversation. -
Modifiez le
enabled
champtrue
pour Amazon Lex V2 afin de permettre au crochet de code de s'exécuter normalement. Si vous le marquezfalse
, 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
etenableCodeHookInvocation
/sur : true
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 CreateIntentor UpdateIntent. Le initialResponse
champ correspond à l'InitialResponseSettingobjet suivant :
"initialResponse": { "codeHook": { "active":
boolean
, "enableCodeHookInvocation":boolean
, "invocationLabel":string
, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }, "initialResponse": FulfillmentUpdatesSpecification object, "nextStep": PostFulfillmentStatusSpecification object, "conditional": ConditionalSpecification object }
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. CreateSlotUpdateSlot Le slotCaptureSetting
champ correspond à l'SlotCaptureSettingobjet suivant :
"slotCaptureSetting": { "captureConditional": ConditionalSpecification object, "captureNextStep": DialogState object, "captureResponse": ResponseSpecification object, "codeHook": { "active":
true
, "enableCodeHookInvocation":true
, "invocationLabel":string
, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }, "elicitationCodeHook": { "enableCodeHookInvocation":boolean
, "invocationLabel":string
}, "failureConditional": ConditionalSpecification object, "failureNextStep": DialogState object, "failureResponse": ResponseSpecification object }
-
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
Pour appeler la fonction Lambda lors de la confirmation d'une intention, utilisez le intentConfirmationSetting
champ de l'opération CreateIntentor UpdateIntent. Le intentConfirmation
champ correspond à l'IntentConfirmationSettingobjet suivant :
"intentConfirmationSetting": { "active":
boolean
, "codeHook": { "active":boolean
, "enableCodeHookInvocation":boolean
, "invocationLabel":string
, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }, "confirmationConditional": ConditionalSpecification object, "confirmationNextStep": DialogState object, "confirmationResponse": ResponseSpecification object, "declinationConditional": ConditionalSpecification object, "declinationNextStep": FulfillmentUpdatesSpecification object, "declinationResponse": PostFulfillmentStatusSpecification object, "elicitationCodeHook": { "enableCodeHookInvocation":boolean
, "invocationLabel":string
, }, "failureConditional": ConditionalSpecification object, "failureNextStep": DialogState object, "failureResponse": ResponseSpecification object, "promptSpecification": PromptSpecification object }
-
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
Pour appeler la fonction Lambda afin de répondre à une intention, utilisez le fulfillmentCodeHook
champ dans l'opération CreateIntentor UpdateIntent. Le fulfillmentCodeHook
champ correspond à l'FulfillmentCodeHookSettingsobjet suivant :
{ "active":
boolean
, "enabled":boolean
, "fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object, "postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object }
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.