

Hinweis zum Ende des Supports: Am 15. September 2025 AWS wird der Support für Amazon Lex V1 eingestellt. Nach dem 15. September 2025 können Sie nicht mehr auf die Amazon-Lex-V1-Konsole oder die Amazon-Lex-V1-Ressourcen zugreifen. Wenn Sie Amazon Lex V2 verwenden, lesen Sie stattdessen das [Amazon Lex V2-Handbuch](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html). 

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.

# Migration einer Lambda-Funktion von Amazon Lex V1 zu Amazon Lex V2
<a name="message-lambda"></a>

Amazon Lex V2 erlaubt nur eine Lambda-Funktion für jede Sprache in einem Bot. Die Lambda-Funktion und ihre Einstellungen sind für den Bot-Alias konfiguriert, den Sie zur Laufzeit verwenden. 

Die Lambda-Funktion wird für alle Zwecke in dieser Sprache aufgerufen, wenn Dialog- und Fulfillment-Code-Hooks für die Absicht aktiviert sind.

Amazon Lex V2 Lambda-Funktionen haben ein anderes Eingabe- und Ausgabenachrichtenformat als Amazon Lex V1. Dies sind die Unterschiede im Eingabeformat der Lambda-Funktion.
+ Amazon Lex V2 ersetzt die `alternativeIntents` Strukturen `currentIntent` und durch die `interpretations` Struktur. Jede Interpretation enthält eine Absicht, den NLU-Konfidenzwert für die Absicht und eine optionale Stimmungsanalyse.
+ Amazon Lex V2 verschiebt die`activeContexts`, `sessionAttributes` in Amazon Lex V1, auf die einheitliche `sessionState` Struktur. Diese Struktur bietet Informationen über den aktuellen Status der Konversation, einschließlich der ursprünglichen Anfrage-ID.
+ Amazon Lex V2 gibt das nicht zurück`recentIntentSummaryView`. Verwenden Sie stattdessen die Informationen in der `sessionState` Struktur.
+ Die Amazon Lex V2-Eingabe stellt das `botId` und `localeId` im `bot` Attribut bereit.
+ Die Eingabestruktur enthält ein `inputMode` Attribut, das Informationen über die Art der Eingabe bereitstellt: Text, Sprache oder DTMF.

Dies sind die Unterschiede im Ausgabeformat der Lambda-Funktion:
+ Die `sessionAttributes` Strukturen `activeContexts` und in Amazon Lex V1 werden durch die `sessionState` Struktur in Amazon Lex V2 ersetzt.
+ Das `recentIntentSummaryView` ist nicht in der Ausgabe enthalten.
+ Die Amazon Lex `dialogAction` V1-Struktur ist in zwei Strukturen aufgeteilt, `dialogAction` die Teil der `sessionState` Struktur sind und `messages` die erforderlich sind, wenn die `dialogAction.type``ElicitIntent`. Amazon Lex wählt Nachrichten aus dieser Struktur aus, um sie dem Benutzer anzuzeigen.

Wenn Sie einen Bot mit Amazon Lex V2 erstellen APIs, gibt es nur eine Lambda-Funktion pro Bot-Alias pro Sprache anstelle einer Lambda-Funktion für jede Absicht. Wenn Sie weiterhin separate Funktionen verwenden möchten, können Sie eine Router-Funktion erstellen, die für jeden Intent eine separate Funktion aktiviert. Die folgende Router-Funktion können Sie für Ihre Anwendung verwenden oder ändern.

```
import os
import json
import boto3

# reuse client connection as global
client = boto3.client('lambda') 

def router(event):
    intent_name = event['sessionState']['intent']['name']
    fn_name = os.environ.get(intent_name)
    print(f"Intent: {intent_name} -> Lambda: {fn_name}")
    if (fn_name):
        # invoke lambda and return result
        invoke_response = client.invoke(FunctionName=fn_name, Payload = json.dumps(event))
        print(invoke_response)
        payload = json.load(invoke_response['Payload'])
        return payload
    raise Exception('No environment variable for intent: ' + intent_name)
    
def lambda_handler(event, context):
    print(event)
    response = router(event)
    return response
```

## Liste der aktualisierten Felder
<a name="lambda-migrating"></a>

Die folgenden Tabellen enthalten detaillierte Informationen zu den aktualisierten Feldern in der Amazon Lex V2 Lambda-Anfrage und -Antwort. Sie können diese Tabellen verwenden, um Felder zwischen den Versionen zuzuordnen.

### Anforderung
<a name="migrating-lambda-request"></a>

Die folgenden Felder wurden im Lambda-Funktionsanforderungsformat aktualisiert.

#### Aktive Kontexte
<a name="lambda-migrating-contexts"></a>

Die `activeContexts` Struktur ist jetzt Teil der `sessionState` Struktur.


| V1-Struktur | V2-Struktur | 
| --- | --- | 
|  Aktive Kontexte  |  Sitzungsstatus. ActiveContexts  | 
|  ActiveContexts [\$1]. timeToLive  |  SessionState.ActiveContexts [\$1]. timeToLive  | 
|  Aktive Kontexte [\$1]. timeToLive. timeToLiveInSeconds  |  SessionState.ActiveContexts [\$1]. timeToLive. timeToLiveInSeconds  | 
|  Aktive Kontexte [\$1]. timeToLive. turnsToLive  |  SessionState.ActiveContexts [\$1]. timeToLive. turnsToLive  | 
|  Aktive Kontexte [\$1] .name  |  Sitzungsstate.ActiveContexts [\$1] .name  | 
|  ActiveContexts [\$1] .parameter  |  sessionState.ActiveContexts [\$1] .contextAttributes  | 

#### Alternative Absichten
<a name="lambda-migrating-alternative"></a>

Die Interpretationsliste von Index 1 bis N enthält die Liste der von Amazon Lex V2 vorhergesagten alternativen Absichten zusammen mit ihren Konfidenzwerten. Das `recentIntentSummaryView` wird aus der Anforderungsstruktur in Amazon Lex V2 entfernt. Um die Details von zu sehen`recentIntentSummaryView`, verwenden Sie den [GetSession](API_runtime_GetSession.md) Vorgang.


| V1-Struktur | V2-Struktur | 
| --- | --- | 
|  Alternative Absichten  |  Interpretationen [1: \$1]  | 
|  recentIntentSummaryAnsehen  |  –  | 

#### Bot
<a name="lambda-migrating-bot"></a>

In Amazon Lex V2 haben Bots und Aliase Identifikatoren. Die Bot-ID ist Teil der Codehook-Eingabe. Die Alias-ID ist enthalten, aber nicht der Aliasname. Amazon Lex V2 unterstützt mehrere Gebietsschemas für denselben Bot, sodass die Gebietsschema-ID enthalten ist.


| V1-Struktur | V2-Struktur | 
| --- | --- | 
|  Bot  |  Bot  | 
|  Botname  |  Bot-Name  | 
|  –  |  Bot-ID  | 
|  Bot-Alias  |  –  | 
|  –  |  Bot-Alias-ID  | 
|  Bot-Version  |  Bot-Version  | 
|  –  |  bot.LocaleID  | 

#### Derzeitige Absicht
<a name="lambda-migrating-intent"></a>

Die `sessionState.intent` Struktur enthält die Details der aktiven Absicht. Amazon Lex V2 gibt auch eine Liste aller Absichten, einschließlich alternativer Absichten, in der `interpretations` Struktur zurück. Das erste Element in der Interpretationsliste ist immer dasselbe wie. `sessionState.intent`


| V1-Struktur | V2-Struktur | 
| --- | --- | 
|  currentIntent  |  sessionState.INTENT ODER Interpretationen [0] .intent  | 
|  Aktuelle Absicht.Name  |  SessionState.Intent.Name ODER Interpretationen [0] .intent.name  | 
|  currentIntent. nluConfidenceScore  |  Interpretationen [0] .nluConfidence.score  | 

#### Aktion im Dialog
<a name="lambda-migrating-dialog"></a>

Das `confirmationStatus` Feld ist jetzt Teil der `sessionState` Struktur.


| V1-Struktur | V2-Struktur | 
| --- | --- | 
|  Aktuelle Absicht. Bestätigungsstatus  |  sessionState.intent.ConfirmationState ODER Interpretationen [0] .intent.ConfirmationState  | 
|  –  |  sessionState.intent.STATE ODER Interpretationen [\$1] .intent.state  | 

#### Amazon Kendra
<a name="lambda-migrating-kendra"></a>

Das Feld ist jetzt `kendraResponse` Teil der UND-Strukturen. `sessionState` `interpretations`


| V1-Struktur | V2-Struktur | 
| --- | --- | 
|  kendraResponse  |  sessionState.intent.KendraResponse ODER Interpretationen [0] .intent.KendraResponse  | 

#### Stimmung
<a name="lambda-migrating-sentiment"></a>

Die Struktur wird in die neue `sentimentResponse` Struktur verschoben. `interpretations`


| V1-Struktur | V2-Struktur | 
| --- | --- | 
|  sentimentResponse  |  Interpretationen [0] .sentimentResponse  | 
|  sentimentResponse.sentimentLabel  |  Interpretationen [0] .sentimentResponse.Sentiment  | 
|  SentimentResponse.SentimentScore  |  Interpretationen [0] .sentimentResponse.sentimentScore  | 

#### Slots
<a name="lambda-migrating-slots"></a>

Amazon Lex V2 stellt ein einzelnes `slots` Objekt innerhalb der `sessionState.intent` Struktur bereit, das die aufgelösten Werte, den interpretierten Wert und den ursprünglichen Wert dessen, was der Benutzer gesagt hat, enthält. Amazon Lex V2 unterstützt auch Slots mit mehreren Werten, indem das `slotShape` As `List` und die `values` Liste festgelegt werden. Steckplätze mit einem Wert werden vom `value` Feld unterstützt, es wird davon ausgegangen, dass ihre Form dies ist. `Scalar`


| V1-Struktur | V2-Struktur | 
| --- | --- | 
|  CurrentIntent.Slots  |  sessionState.intent.SLOTS ODER Interpretationen [0] .intent.slots  | 
|  CurrentIntent.slots [\$1] .value  |  sessionState.intent.slots [\$1] .value.interpretedValue ODER Interpretationen [0] .intent.slots [\$1] .value.interpretedValue  | 
|  –  |  sessionState.intent.slots [\$1] .value.shape ODER Interpretationen [0] .intent.slots [\$1] .shape  | 
|  –  |  sessionState.intent.slots [\$1] .values ODER Interpretationen [0] .intent.slots [\$1] .values  | 
|  Aktuelle Intent.Slot-Details  |  sessionState.intent.SLOTS ODER Interpretationen [0] .intent.slots  | 
|  CurrentIntent.SlotDetails [\$1] .Resolutionen  |  sessionState.intent.slots [\$1] .resolvedValues ODER Interpretationen [0] .intent.slots [\$1] .resolvedValues  | 
|  CurrentIntent.SlotDetails [\$1] .Originalwert  |  sessionState.intent.slots [\$1] .originalValue ODER Interpretationen [0] .intent.slots [\$1] .originalValue  | 

#### Weitere
<a name="lambda-migrating-other"></a>

Das `sessionId` Feld Amazon Lex V2 entspricht dem `userId` Feld in Amazon Lex V1. Amazon Lex V2 sendet auch die `inputMode` Daten des Anrufers: Text, DTMF oder Sprache.


| V1-Struktur | V2-Struktur | 
| --- | --- | 
|  userId  |  sessionId  | 
|  inputTranscript  |  inputTranscript  | 
|  invocationSource  |  invocationSource  | 
|  outputDialogMode  |  responseContentType  | 
|  messageVersion  |  messageVersion  | 
|  sessionAttributes  |  SessionState.Session-Attribute  | 
|  requestAttributes  |  requestAttributes  | 
|  –  |  Eingabemodus  | 
|  –  |  originatingRequestId  | 

### Antwort
<a name="migrating-lambda-response"></a>

Die folgenden Felder wurden im Format der Antwortnachricht der Lambda-Funktion geändert.

#### Aktive Kontexte
<a name="lambda-migrating-resonse-context"></a>

Die `activeContexts` Struktur wurde zur `sessionState` Struktur verschoben.


| V1-Struktur | V2-Struktur | 
| --- | --- | 
|  Aktive Kontexte  |  Sitzungsstatus. ActiveContexts  | 
|  ActiveContexts [\$1]. timeToLive  |  SessionState.ActiveContexts [\$1]. timeToLive  | 
|  Aktive Kontexte [\$1]. timeToLive. timeToLiveInSeconds  |  SessionState.ActiveContexts [\$1]. timeToLive. timeToLiveInSeconds  | 
|  Aktive Kontexte [\$1]. timeToLive. turnsToLive  |  SessionState.ActiveContexts [\$1]. timeToLive. turnsToLive  | 
|  Aktive Kontexte [\$1] .name  |  Sitzungsstate.ActiveContexts [\$1] .name  | 
|  ActiveContexts [\$1] .parameter  |  sessionState.ActiveContexts [\$1] .contextAttributes  | 

#### Aktion im Dialog
<a name="lambda-migrating-response-dialog"></a>

Die `dialogAction` Struktur wurde in die `sessionState` Struktur verschoben. Sie können jetzt mehrere Nachrichten in einer Dialogaktion angeben, und die `genericAttachments` Struktur ist jetzt die `imageResponseCard` Struktur.


| V1-Struktur | V2-Struktur | 
| --- | --- | 
|  dialogAction  |  SessionState.DialogAction  | 
|  DialogAction.Typ  |  Sitzungsstate.DialogAction.Typ  | 
|  dialogAction. slotToElicit  |  SessionState.Intent.DialogAction. slotToElicit  | 
|  dialogAction.Type.FulfillmentState  |  SessionState.Intent.State  | 
|  dialogAction.Message  |  messages  | 
|  dialogAction.Message.Inhaltstyp  |  Nachrichten [\$1] .contentType  | 
|  dialogAction.Message.Content  |  nachrichten [\$1] .content  | 
|  dialogAction.Antwortkarte  |  Nachrichten [\$1]. imageResponseCard  | 
|  DialogAktion.Antwortkarte.Version  |  –  | 
|  DialogAction.ResponseCard.Inhaltstyp  |  Nachrichten [\$1] .contentType  | 
|  DialogAction.ResponseCard.Generische Anlagen  |  –  | 
|  dialogAction.ResponseCard.GenericAttachments [\$1] .title  |  Nachrichten [\$1]. imageResponseCard.titel  | 
|  dialogAction.ResponseCard.GenericAttachments [\$1] .subtitle  |  Nachrichten [\$1]. imageResponseCard.untertitel  | 
|  dialogAction.responsecard.GenericAttachments [\$1] .imageURL  |  Nachrichten [\$1]. imageResponseCard. imageUrl  | 
|  dialogAction.ResponseCard.GenericAttachments [\$1] .buttons  |  Nachrichten [\$1]. imageResponseCard. Knöpfe  | 
|  dialogAction.ResponseCard.GenericAttachments [\$1] .buttons [\$1] .value  |  nachrichten [\$1]. imageResponseCard.Tasten [\$1] .Wert  | 
|  dialogAction.ResponseCard.GenericAttachments [\$1] .buttons [\$1] .text  |  nachrichten [\$1]. imageResponseCard.tasten [\$1] .text  | 
|  dialogAction. kendraQueryRequestNutzlast  |  dialogAction. kendraQueryRequestNutzlast  | 
|  dialogAction. kendraQueryFilterZeichenfolge  |  dialogAction. kendraQueryFilterZeichenfolge  | 

#### Absichten und Slots
<a name="lambda-migrating-response-slots"></a>

Die Felder Intent und Slot, die Teil der `dialogAction` Struktur waren, sind jetzt Teil der `sessionState` Struktur.


| V1-Struktur | V2-Struktur | 
| --- | --- | 
|  DialogAction.IntentName  |  Sitzungsstatus.Absicht.Name  | 
|  DialogAction.Steckplätze  |  SessionState.Intent.Steckplätze  | 
|  dialogAction.slots [\$1] .key  |  sessionState.intent.slots [\$1] .key  | 
|  dialogAction.slots [\$1] .Wert  |  sessionState.intent.slots [\$1] .value.InterpretedValue  | 
|  –  |  sessionState.intent.slots [\$1] .value.shape  | 
|  –  |  sessionState.intent.slots [\$1] .values  | 

#### Weitere
<a name="lambda-migrating-response-other"></a>

Die Struktur ist jetzt Teil der Struktur`sessionAttributes`. `sessionState` Die `recentIntentSummaryReview` Struktur wurde entfernt.


| V1-Struktur | V2-Struktur | 
| --- | --- | 
|  sessionAttributes  |  SessionState.SessionAttribute  | 
|  recentIntentSummaryAnsicht  |  –  | 