

Pemberitahuan akhir dukungan: Pada 15 September 2025, AWS akan menghentikan dukungan untuk Amazon Lex V1. Setelah 15 September 2025, Anda tidak lagi dapat mengakses konsol Amazon Lex V1 atau sumber daya Amazon Lex V1. Jika Anda menggunakan Amazon Lex V2, lihat [panduan Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html) sebagai gantinya. 

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Memigrasi fungsi Lambda dari Amazon Lex V1 ke Amazon Lex V2
<a name="message-lambda"></a>

Amazon Lex V2 hanya mengizinkan satu fungsi Lambda untuk setiap bahasa dalam bot. Fungsi Lambda dan pengaturannya dikonfigurasi untuk alias bot yang Anda gunakan saat runtime. 

Fungsi Lambda dipanggil untuk semua intent dalam bahasa tersebut jika dialog dan hook kode pemenuhan diaktifkan untuk intent.

Fungsi Amazon Lex V2 Lambda memiliki format pesan input dan output yang berbeda dari Amazon Lex V1. Ini adalah perbedaan dalam format input fungsi Lambda.
+ Amazon Lex V2 menggantikan struktur `currentIntent` dan `alternativeIntents` struktur dengan `interpretations` struktur. Setiap interpretasi berisi maksud, skor kepercayaan NLU untuk maksud tersebut, dan analisis sentimen opsional.
+ Amazon Lex V2 memindahkan`activeContexts`, `sessionAttributes` di Amazon Lex V1 ke struktur terpadu`sessionState`. Struktur ini memberikan informasi tentang keadaan percakapan saat ini, termasuk ID permintaan asal.
+ Amazon Lex V2 tidak mengembalikan`recentIntentSummaryView`. Gunakan informasi dalam `sessionState` struktur sebagai gantinya.
+ Input Amazon Lex V2 menyediakan `botId` dan `localeId` dalam `bot` atribut.
+ Struktur input berisi `inputMode` atribut yang memberikan informasi tentang jenis input: teks, ucapan, atau DTMF.

Ini adalah perbedaan dalam format output fungsi Lambda:
+ Struktur `activeContexts` dan `sessionAttributes` struktur di Amazon Lex V1 digantikan oleh `sessionState` struktur di Amazon Lex V2.
+ `recentIntentSummaryView`Tidak termasuk dalam output.
+ `dialogAction`Struktur Amazon Lex V1 dibagi menjadi dua struktur, `dialogAction` yang merupakan bagian dari `sessionState` struktur, dan `messages` itu diperlukan saat `dialogAction.type` ada`ElicitIntent`. Amazon Lex memilih pesan dari struktur ini untuk ditampilkan kepada pengguna.

Saat Anda membuat bot dengan Amazon Lex V2 APIs, hanya ada satu fungsi Lambda per alias bot per bahasa, bukan fungsi Lambda untuk setiap maksud. Jika Anda ingin terus menggunakan fungsi terpisah, Anda dapat membuat fungsi router yang mengaktifkan fungsi terpisah untuk setiap maksud. Berikut ini adalah fungsi router yang dapat Anda gunakan atau modifikasi untuk aplikasi Anda.

```
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
```

## Daftar bidang yang diperbarui
<a name="lambda-migrating"></a>

Tabel berikut memberikan informasi rinci tentang bidang yang diperbarui dalam permintaan dan tanggapan Amazon Lex V2 Lambda. Anda dapat menggunakan tabel ini untuk memetakan bidang di antara versi.

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

Bidang berikut telah diperbarui dalam format permintaan fungsi Lambda.

#### Konteks aktif
<a name="lambda-migrating-contexts"></a>

`activeContexts`Struktur sekarang menjadi bagian dari `sessionState` struktur.


| Struktur V1 | Struktur V2 | 
| --- | --- | 
|  ActiveContext  |  SessionState.ActiveContext  | 
|  ActiveContext [\$1]. timeToLive  |  SessionState.ActiveContext [\$1]. timeToLive  | 
|  ActiveContext [\$1]. timeToLive. timeToLiveInSeconds  |  SessionState.ActiveContext [\$1]. timeToLive. timeToLiveInSeconds  | 
|  ActiveContext [\$1]. timeToLive. turnsToLive  |  SessionState.ActiveContext [\$1]. timeToLive. turnsToLive  | 
|  ActiveContext [\$1] .name  |  SessionState.ActiveContext [\$1] .name  | 
|  ActiveContext [\$1] .parameter  |  SessionState.ActiveContextS [\$1] .contextAttributes  | 

#### Maksud alternatif
<a name="lambda-migrating-alternative"></a>

Daftar interpretasi dari indeks 1 hingga N berisi daftar maksud alternatif yang diprediksi oleh Amazon Lex V2, bersama dengan skor kepercayaan mereka. `recentIntentSummaryView`Ini dihapus dari struktur permintaan di Amazon Lex V2. Untuk melihat detail dari`recentIntentSummaryView`, gunakan [GetSession](API_runtime_GetSession.md) operasi.


| Struktur V1 | Struktur V2 | 
| --- | --- | 
|  Intents alternatif  |  interpretasi [1: \$1]  | 
|  recentIntentSummaryLihat  |  N/A  | 

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

Di Amazon Lex V2, bot dan alias memiliki pengidentifikasi. ID bot adalah bagian dari input codehook. ID alias disertakan, tetapi bukan nama alias. Amazon Lex V2 mendukung beberapa lokal untuk bot yang sama sehingga ID lokal disertakan.


| Struktur V1 | Struktur V2 | 
| --- | --- | 
|  bot  |  bot  | 
|  bot.nama  |  bot.nama  | 
|  N/A  |  bot.id  | 
|  bot.alias  |  N/A  | 
|  N/A  |  Bot.aliasid  | 
|  bot.versi  |  bot.versi  | 
|  N/A  |  bot.localeid  | 

#### Niat saat ini
<a name="lambda-migrating-intent"></a>

`sessionState.intent`Struktur berisi rincian maksud aktif. Amazon Lex V2 juga mengembalikan daftar semua maksud, termasuk maksud alternatif, dalam struktur. `interpretations` Elemen pertama dalam daftar interpretasi selalu sama dengan. `sessionState.intent`


| Struktur V1 | Struktur V2 | 
| --- | --- | 
|  currentIntent  |  SessionState.intent ATAU interpretasi [0] .intent  | 
|  currentIntent.name  |  SessionState.intent.name ATAU interpretasi [0] .intent.name  | 
|  currentIntent. nluConfidenceScore  |  interpretasi [0] .nluConfidence.score  | 

#### Tindakan dialog
<a name="lambda-migrating-dialog"></a>

`confirmationStatus`Bidang sekarang menjadi bagian dari `sessionState` struktur.


| Struktur V1 | Struktur V2 | 
| --- | --- | 
|  currentIntent.confirmationStatus  |  SessionState.intent.confirmationState ATAU interpretasi [0] .intent.confirmationState  | 
|  N/A  |  SessionState.intent.state ATAU interpretasi [\$1] .intent.state  | 

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

`kendraResponse`Lapangan sekarang menjadi bagian dari `sessionState` dan `interpretations` struktur.


| Struktur V1 | Struktur V2 | 
| --- | --- | 
|  kendraResponse  |  SessionState.intent.kendraresponse ATAU interpretasi [0] .intent.kendraresponse  | 

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

`sentimentResponse`Struktur dipindahkan ke `interpretations` struktur baru.


| Struktur V1 | Struktur V2 | 
| --- | --- | 
|  sentimentResponse  |  interpretasi [0] .sentimentResponse  | 
|  sentimentResponse.sentimentLabel  |  interpretasi [0] .sentimentResponse.sentiment  | 
|  Sentimentresponse.sentimentScore  |  interpretasi [0] .sentimentResponse.sentimentScore  | 

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

Amazon Lex V2 menyediakan satu `slots` objek di dalam `sessionState.intent` struktur yang berisi nilai yang diselesaikan, nilai yang ditafsirkan, dan nilai asli dari apa yang dikatakan pengguna. Amazon Lex V2 juga mendukung slot multi-nilai dengan mengatur `slotShape` as `List` dan mengatur `values` daftar. Slot nilai tunggal didukung oleh `value` bidang, bentuknya diasumsikan. `Scalar`


| Struktur V1 | Struktur V2 | 
| --- | --- | 
|  CurrentIntent.slot  |  SessionState.intent.slots ATAU interpretasi [0] .intent.slots  | 
|  CurrentIntent.slots [\$1] .value  |  SessionState.intent.slots [\$1] .value.interpretedValue ATAU interpretasi [0] .intent.slots [\$1] .value.interpretedValue  | 
|  N/A  |  SessionState.intent.slots [\$1] .value.shape ATAU interpretasi [0] .intent.slots [\$1] .shape  | 
|  N/A  |  SessionState.intent.slots [\$1] .values ATAU interpretasi [0] .intent.slots [\$1] .values  | 
|  currentIntent.slotDetails  |  SessionState.intent.slots ATAU interpretasi [0] .intent.slots  | 
|  currentIntent.slotDetails [\$1] .resolutions  |  SessionState.intent.slots [\$1] .resolvedValues ATAU interpretasi [0] .intent.slots [\$1] .resolvedValues  | 
|  currentIntent.slotDetails [\$1] .originalValue  |  SessionState.intent.slots [\$1] .originalValue ATAU interpretasi [0] .intent.slots [\$1] .originalValue  | 

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

`sessionId`Bidang Amazon Lex V2 sama dengan `userId` bidang di Amazon Lex V1. Amazon Lex V2 juga mengirimkan penelepon: teks, DTMF, atau pidato. `inputMode`


| Struktur V1 | Struktur V2 | 
| --- | --- | 
|  userId  |  sessionId  | 
|  inputTranscript  |  inputTranscript  | 
|  invocationSource  |  invocationSource  | 
|  outputDialogMode  |  responseContentType  | 
|  messageVersion  |  messageVersion  | 
|  sessionAttributes  |  SessionState.SessionAttributes  | 
|  requestAttributes  |  requestAttributes  | 
|  N/A  |  InputMode  | 
|  N/A  |  originatingRequestId  | 

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

Bidang berikut telah diubah dalam format pesan respons fungsi Lambda.

#### Konteks aktif
<a name="lambda-migrating-resonse-context"></a>

`activeContexts`Strukturnya pindah ke `sessionState` struktur.


| Struktur V1 | Struktur V2 | 
| --- | --- | 
|  ActiveContext  |  SessionState.ActiveContext  | 
|  ActiveContext [\$1]. timeToLive  |  SessionState.ActiveContext [\$1]. timeToLive  | 
|  ActiveContext [\$1]. timeToLive. timeToLiveInSeconds  |  SessionState.ActiveContext [\$1]. timeToLive. timeToLiveInSeconds  | 
|  ActiveContext [\$1]. timeToLive. turnsToLive  |  SessionState.ActiveContext [\$1]. timeToLive. turnsToLive  | 
|  ActiveContext [\$1] .name  |  SessionState.ActiveContext [\$1] .name  | 
|  ActiveContext [\$1] .parameter  |  SessionState.ActiveContextS [\$1] .contextAttributes  | 

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

`dialogAction`Strukturnya pindah ke `sessionState` struktur. Sekarang Anda dapat menentukan beberapa pesan dalam tindakan dialog, dan `genericAttachments` strukturnya sekarang menjadi `imageResponseCard` strukturnya.


| Struktur V1 | Struktur V2 | 
| --- | --- | 
|  dialogAction  |  SessionState.dialogAction  | 
|  Dialogaction.type  |  SessionState.dialogaction.type  | 
|  DialogAction. slotToElicit  |  SessionState.intent.DialogAction. slotToElicit  | 
|  Dialogaction.type.fullmentState  |  SessionState.intent.state  | 
|  Dialogaction.message  |  pesan  | 
|  Dialogaction.message.contentType  |  pesan [\$1] .ContentType  | 
|  Dialogaction.message.content  |  pesan [\$1] .content  | 
|  Dialogaction.responseCard  |  pesan [\$1]. imageResponseCard  | 
|  Dialogaction.responsecard.version  |  N/A  | 
|  Dialogaction.responsecard.contentType  |  pesan [\$1] .ContentType  | 
|  Dialogaction.responsecard.genericAttachments  |  N/A  | 
|  Dialogaction.responsecard.genericAttachments [\$1] .title  |  pesan [\$1]. imageResponseCard.judul  | 
|  Dialogaction.responsecard.genericAttachments [\$1] .subtitle  |  pesan [\$1]. imageResponseCard.subtitle  | 
|  dialogaction.responsecard.genericAttachments [\$1] .ImageUrl  |  pesan [\$1]. imageResponseCard.imageUrl  | 
|  Dialogaction.responsecard.genericAttachments [\$1] .buttons  |  pesan [\$1]. imageResponseCard.tombol  | 
|  DialogAction.responseCard.genericAttachments [\$1] .buttons [\$1] .value  |  pesan [\$1]. imageResponseCard.buttons [\$1] .value  | 
|  Dialogaction.responsecard.genericAttachments [\$1] .buttons [\$1] .text  |  pesan [\$1]. imageResponseCard.tombol [\$1] .teks  | 
|  DialogAction. kendraQueryRequestMuatan  |  DialogAction. kendraQueryRequestMuatan  | 
|  DialogAction. kendraQueryFilterTali  |  DialogAction. kendraQueryFilterTali  | 

#### Maksud dan slot
<a name="lambda-migrating-response-slots"></a>

Bidang intent dan slot yang merupakan bagian dari `dialogAction` struktur sekarang menjadi bagian dari `sessionState` struktur.


| Struktur V1 | Struktur V2 | 
| --- | --- | 
|  DialogAction.intentName  |  SessionState.intent.name  | 
|  Dialogaction.slot  |  SessionState.Intent.Slots  | 
|  Dialogaction.slot [\$1] .key  |  SessionState.intent.slots [\$1] .key  | 
|  Dialogaction.slots [\$1] .value  |  SessionState.intent.slots [\$1] .value.interpretedValue  | 
|  N/A  |  SessionState.intent.slots [\$1] .value.shape  | 
|  N/A  |  SessionState.intent.slots [\$1] .values  | 

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

`sessionAttributes`Struktur sekarang menjadi bagian dari `sessionState` struktur. `recentIntentSummaryReview`Strukturnya telah dihapus.


| Struktur V1 | Struktur V2 | 
| --- | --- | 
|  sessionAttributes  |  SessionState.SessionAttributes  | 
|  recentIntentSummaryLihat  |  N/A  | 