

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 Amazon Lex V2-Bot an
<a name="lambda-attach-api"></a>

Sie müssen zuerst eine Lambda-Funktion an Ihren Amazon Lex V2-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 [CreateBotAlias](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateBotAlias.html)Vorgang, um eine Lambda-Funktion anzuhängen. Verwenden Sie die [UpdateBotAlias](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateBotAlias.html)Operation, 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
        },
        ...
    }
}
```

1. 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](how-languages.md#supported-languages)

1. Um die Funktion `lambdaARN` for a Lambda zu finden, öffnen Sie die AWS Lambda Konsole zu [https://console.aws.amazon.com/lambda/Hause](https://console.aws.amazon.com/lambda/home), 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.

1. Damit Amazon Lex V2 die Lambda-Funktion für den Alias aufrufen kann, setzen Sie das `enabled` Feld auf. `true`

**Festlegung einer Amazon Lex V2-Absicht zum Aufrufen einer Lambda-Funktion mithilfe von API-Vorgängen**

Um den Lambda-Funktionsaufruf während einer Absicht einzurichten, verwenden Sie die [CreateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html)Operation, wenn Sie eine neue Absicht erstellen, oder die [UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html)Operation, wenn Sie die Funktion in einer vorhandenen Absicht aufrufen. Die Felder, die den Lambda-Funktionsaufruf in den Intent-Operationen steuern`dialogCodeHook`, sind, `initialResponseSetting``intentConfirmationSetting`, und. `fulfillmentCodeHook`

Wenn Sie die Funktion während des Auslösens eines Slots aufrufen, verwenden Sie die [CreateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateSlot.html)Operation, wenn Sie einen neuen Slot erstellen, oder die [UpdateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateSlot.html)Operation, 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.

1. 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 [DialogCodeHookSettings](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogCodeHookSettings.html)Objekts im `dialogCodeHook` Feld auf`true`:

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

1. 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 `codeHook` and/or `elicitationCodeHook` Feld 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 das `fulfillmentCodeHook` Feld in der [UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html)Operation [CreateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html)or. Die Strukturen und Verwendungszwecke dieser drei Arten von Code-Hooks lauten wie folgt:

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

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 [DialogCodeHookInvocationSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DialogCodeHookInvocationSetting.html)Objekt mit der folgenden Struktur:

```
"codeHook": {
    "active": boolean,
    "enableCodeHookInvocation": boolean,
    "invocationLabel": string,
    "postCodeHookSpecification": [PostDialogCodeHookInvocationSpecification object](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostDialogCodeHookInvocationSpecification.html),
}
```
+ Ändern Sie das `active` Feld auf `true` für Amazon Lex V2, um den Code-Hook an diesem Punkt in der Konversation aufzurufen.
+ Ändern Sie das `enableCodeHookInvocation` Feld auf `true` für Amazon Lex V2, damit der Code-Hook normal ausgeführt werden kann. Wenn Sie es markieren`false`, 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.

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

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 [ElicitationCodeHookInvocationSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ElicitationCodeHookInvocationSetting.html)Objekt mit der folgenden Struktur:

```
"elicitationCodeHook": {
    "enableCodeHookInvocation": boolean,
    "invocationLabel": string
}
```
+ Ändern Sie das `enableCodeHookInvocation` Feld auf `true` für Amazon Lex V2, damit der Code-Hook normal ausgeführt werden kann. Wenn Sie es markieren`false`, 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.

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

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 [FulfillmentCodeHookSettings](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentCodeHookSettings.html)Objekt zugeordnet:

```
"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)
}
```
+ Ändern Sie das `active` Feld auf `true` für Amazon Lex V2, um den Code-Hook an diesem Punkt in der Konversation aufzurufen.
+ Ändern Sie das `enabled` Feld auf `true` für Amazon Lex V2, damit der Code-Hook normal ausgeführt werden kann. Wenn Sie es markieren`false`, 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` und`enableCodeHookInvocation`/auf setzen: `true`

## Während der ersten Antwort
<a name="lambda-hook-initial-response"></a>

Um die Lambda-Funktion in der ersten Antwort aufzurufen, nachdem die Absicht erkannt wurde, verwenden Sie die `codeHook` Struktur im `initialResponse` Feld der Operation [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). Das `initialResponse` Feld ist dem folgenden [InitialResponseSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_InitialResponseSetting.html)Objekt zugeordnet:

```
"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)
}
```

## Nach der Slot-Exicitation oder während der Slot-Re-Exicitation
<a name="lambda-hook-elicit-slot"></a>

Um die Lambda-Funktion aufzurufen, nachdem ein Slot-Wert abgerufen wurde, verwenden Sie das `slotCaptureSetting` Feld innerhalb des Felds der `valueElicitation` OR-Operation. [CreateSlot[UpdateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateSlot.html)](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateSlot.html) Das `slotCaptureSetting` Feld ist dem folgenden Objekt zugeordnet: [SlotCaptureSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_SlotCaptureSetting.html)

```
"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)
}
```
+ 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`

## Nach Bestätigung oder Ablehnung der Absicht
<a name="lambda-hook-confirm-intent"></a>

Verwenden Sie das `intentConfirmationSetting` Feld der Operation [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), um die Lambda-Funktion aufzurufen, wenn Sie eine Absicht bestätigen. Das `intentConfirmation` Feld ist dem folgenden [IntentConfirmationSetting](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_IntentConfirmationSetting.html)Objekt zugeordnet:

```
"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)
}
```
+ 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`

## Während der Absichtserfüllung
<a name="lambda-hook-fulfill-intent"></a>

Um die Lambda-Funktion aufzurufen, um eine Absicht zu erfüllen, verwenden Sie das `fulfillmentCodeHook` Feld in der Operation [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). Das `fulfillmentCodeHook` Feld ist dem folgenden [FulfillmentCodeHookSettings](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentCodeHookSettings.html)Objekt zugeordnet:

```
{
    "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. 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.