Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Hängen Sie mithilfe von API-Operationen eine AWS Lambda Funktion an einen Bot an
Sie müssen zuerst eine Lambda-Funktion an Ihren Bot-Alias anhängen, bevor Sie ihn aufrufen können. Sie können jedem Bot-Alias nur eine Lambda-Funktion zuordnen. Führen Sie diese Schritte aus, um die Lambda-Funktion mithilfe von API-Operationen anzuhängen.
Wenn Sie einen neuen Bot-Alias erstellen, verwenden Sie den CreateBotAliasVorgang, um eine Lambda-Funktion anzuhängen. Verwenden Sie die UpdateBotAliasOperation, um eine Lambda-Funktion an einen vorhandenen Bot-Alias anzuhängen. Ändern Sie das botAliasLocaleSettings
Feld so, dass es die richtigen Einstellungen enthält:
{ "botAliasLocaleSettings" : {
locale
: { "codeHookSpecification": { "lambdaCodeHook": { "codeHookInterfaceVersion": "1.0", "lambdaARN": "arn:aws:lambda:region
:account-id
:function:function-name
" } }, "enabled": true }, ... } }
-
Das
botAliasLocaleSettings
Feld ist einem Objekt zugeordnet, dessen Schlüssel die Gebietsschemas sind, an die Sie die Lambda-Funktion anhängen möchten. Eine Liste der unterstützten Gebietsschemas und der Codes, bei denen es sich um gültige Schlüssel handelt, finden Sie unter. Unterstützte Sprachen und Gebietsschemas -
Um die Funktion
lambdaARN
for a Lambda zu finden, öffnen Sie die AWS Lambda Konsole zu https://console.aws.amazon.com/lambda/Hause, wählen Sie in der linken Seitenleiste Funktionen und wählen Sie die Funktion aus, die dem Bot-Alias zugeordnet werden soll. Auf der rechten Seite der Funktionsübersicht finden Sie lambdaARN
unter Funktion ARN. Sie sollte eine Region, eine Konto-ID und den Namen der Funktion enthalten. -
Damit Amazon Lex V2 die Lambda-Funktion für den Alias aufrufen kann, setzen Sie das
enabled
Feld auf.true
Festlegung der Absicht, eine Lambda-Funktion mithilfe von API-Operationen aufzurufen
Um den Lambda-Funktionsaufruf während einer Absicht einzurichten, verwenden Sie die CreateIntentOperation, wenn Sie eine neue Absicht erstellen, oder die UpdateIntentOperation, wenn Sie die Funktion in einer vorhandenen Absicht aufrufen. Die Felder, die den Lambda-Funktionsaufruf in den Intent-Operationen steuerndialogCodeHook
, sind, initialResponseSetting
intentConfirmationSetting
, und. fulfillmentCodeHook
Wenn Sie die Funktion während des Auslösens eines Slots aufrufen, verwenden Sie die CreateSlotOperation, wenn Sie einen neuen Slot erstellen, oder die UpdateSlotOperation, um die Funktion in einem vorhandenen Slot aufzurufen. Das Feld, das den Lambda-Funktionsaufruf in den Slot-Operationen steuert, ist das slotCaptureSetting
des valueElicitationSetting
Objekts.
-
Um den Lambda-Dialog-Code-Hook so einzustellen, dass er nach jeder Runde der Konversation ausgeführt wird, setzen Sie das
enabled
Feld des folgenden DialogCodeHookSettingsObjekts imdialogCodeHook
Feld auftrue
:"dialogCodeHook": { "enabled":
boolean
} -
Alternativ können Sie den Lambda-Dialogcode-Hook so einrichten, dass er nur an bestimmten Stellen in den Konversationen ausgeführt wird, indem Sie das
elicitationCodeHook
FeldcodeHook
und/oder innerhalb der Strukturen ändern, die den Konversationsphasen entsprechen, in denen Sie die Funktion aufrufen möchten. Um den Lambda-Dialogcode-Hook für die Erfüllung von Absichten zu verwenden, verwenden Sie dasfulfillmentCodeHook
Feld in der UpdateIntentOperation CreateIntentor. Die Strukturen und Verwendungszwecke dieser drei Arten von Code-Hooks lauten wie folgt:
Das codeHook
Feld definiert die Einstellungen für den Code-Hook, der in einer bestimmten Phase der Konversation ausgeführt werden soll. Es ist ein DialogCodeHookInvocationSettingObjekt mit der folgenden Struktur:
"codeHook": { "active":
boolean
, "enableCodeHookInvocation":boolean
, "invocationLabel":string
, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }
-
Ändern Sie das
active
Feld auftrue
für Amazon Lex V2, um den Code-Hook an diesem Punkt in der Konversation aufzurufen. -
Ändern Sie das
enableCodeHookInvocation
Feld auftrue
für Amazon Lex V2, damit der Code-Hook normal ausgeführt werden kann. Wenn Sie es markierenfalse
, verhält sich Amazon Lex V2 so, als ob der Code-Hook erfolgreich zurückgegeben wurde. -
Das
invocationLabel
gibt den Dialogschritt an, von dem aus der Code-Hook aufgerufen wird. -
Verwenden Sie das
postCodeHookSpecification
Feld, um die Aktionen und Meldungen anzugeben, die nach einem erfolgreichen, fehlgeschlagenen oder nach einem Timeout des Code-Hooks ausgeführt werden.
Das elicitationCodeHook
Feld definiert die Einstellungen für den Code-Hook, der ausgeführt werden soll, falls ein oder mehrere Slots erneut abgerufen werden müssen. Dieses Szenario kann eintreten, wenn die Slot-Abfrage fehlschlägt oder die Bestätigung der Absicht verweigert wird. Das elicitationCodeHook
Feld ist ein ElicitationCodeHookInvocationSettingObjekt mit der folgenden Struktur:
"elicitationCodeHook": { "enableCodeHookInvocation":
boolean
, "invocationLabel":string
}
-
Ändern Sie das
enableCodeHookInvocation
Feld auftrue
für Amazon Lex V2, damit der Code-Hook normal ausgeführt werden kann. Wenn Sie es markierenfalse
, verhält sich Amazon Lex V2 so, als ob der Code-Hook erfolgreich zurückgegeben wurde. -
Das
invocationLabel
gibt den Dialogschritt an, von dem aus der Code-Hook aufgerufen wird.
Das fulfillmentCodeHook
Feld definiert die Einstellungen für den Code-Hook, der ausgeführt werden soll, um die Absicht zu erfüllen. Es ist dem folgenden FulfillmentCodeHookSettingsObjekt zugeordnet:
"fulfillmentCodeHook": { "active":
boolean
, "enabled":boolean
, "fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object, "postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object }
-
Ändern Sie das
active
Feld auftrue
für Amazon Lex V2, um den Code-Hook an diesem Punkt in der Konversation aufzurufen. -
Ändern Sie das
enabled
Feld auftrue
für Amazon Lex V2, damit der Code-Hook normal ausgeführt werden kann. Wenn Sie es markierenfalse
, verhält sich Amazon Lex V2 so, als ob der Code-Hook erfolgreich zurückgegeben wurde. -
Verwenden Sie das
fulfillmentUpdatesSpecification
Feld, um die Nachrichten anzugeben, die den Benutzer während der Erfüllung der Absicht auf den neuesten Stand bringen sollen, und den damit verbundenen Zeitpunkt. -
Verwenden Sie das
postFulfillmentStatusSpecification
Feld, um die Meldungen und Aktionen anzugeben, die nach einem erfolgreichen, fehlgeschlagenen oder nach einem Timeout des Code-Hooks ausgeführt werden.
Sie können den Lambda-Code-Hook an den folgenden Stellen in einer Konversation aufrufen, indem Sie die enabled
Felder active
undenableCodeHookInvocation
/auf setzen: true
Um die Lambda-Funktion in der ersten Antwort aufzurufen, nachdem die Absicht erkannt wurde, verwenden Sie die codeHook
Struktur im initialResponse
Feld der Operation CreateIntentor UpdateIntent. Das initialResponse
Feld ist dem folgenden InitialResponseSettingObjekt zugeordnet:
"initialResponse": { "codeHook": { "active":
boolean
, "enableCodeHookInvocation":boolean
, "invocationLabel":string
, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }, "initialResponse": FulfillmentUpdatesSpecification object, "nextStep": PostFulfillmentStatusSpecification object, "conditional": ConditionalSpecification object }
Um die Lambda-Funktion aufzurufen, nachdem ein Slot-Wert abgerufen wurde, verwenden Sie das slotCaptureSetting
Feld im valueElicitation
Feld der OR-Operation. CreateSlotUpdateSlot Das slotCaptureSetting
Feld ist dem folgenden Objekt zugeordnet: SlotCaptureSetting
"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 }
-
Verwenden Sie das Feld, um die Lambda-Funktion aufzurufen, nachdem die Slot-Ermittlung erfolgreich war.
codeHook
-
Verwenden Sie das Feld, um die Lambda-Funktion aufzurufen, nachdem die Slot-Erfassung fehlgeschlagen ist und Amazon Lex V2 versucht, die Slot-Abfrage erneut zu versuchen.
elicitationCodeHook
Verwenden Sie das intentConfirmationSetting
Feld der Operation CreateIntentor UpdateIntent, um die Lambda-Funktion aufzurufen, wenn Sie eine Absicht bestätigen. Das intentConfirmation
Feld ist dem folgenden IntentConfirmationSettingObjekt zugeordnet:
"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 }
-
Verwenden Sie das Feld, um die Lambda-Funktion aufzurufen, nachdem der Benutzer die Absicht und ihre Slots bestätigt hat.
codeHook
-
Verwenden Sie das Feld, um die Lambda-Funktion aufzurufen, nachdem der Benutzer die Bestätigung der Absicht verweigert hat und Amazon Lex V2 versucht, die Slot-Abfrage erneut zu versuchen.
elicitationCodeHook
Um die Lambda-Funktion aufzurufen, um eine Absicht zu erfüllen, verwenden Sie das fulfillmentCodeHook
Feld in der Operation CreateIntentor UpdateIntent. Das fulfillmentCodeHook
Feld ist dem folgenden FulfillmentCodeHookSettingsObjekt zugeordnet:
{ "active":
boolean
, "enabled":boolean
, "fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object, "postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object }
3. Nachdem Sie die Konversationsphasen festgelegt haben, in denen die Lambda-Funktion aufgerufen werden soll, verwenden Sie den BuildBotLocale
Vorgang, um den Bot neu zu erstellen, um die Funktion zu testen.