

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.

# Langkah 4: Memulai (AWS CLI)
<a name="gs-cli"></a>

Pada langkah ini, Anda menggunakan AWS CLI untuk membuat, menguji, dan memodifikasi bot Amazon Lex. Untuk menyelesaikan latihan ini, Anda harus terbiasa menggunakan CLI dan memiliki editor teks. Untuk informasi selengkapnya, lihat [Langkah 2: Mengatur AWS Command Line Interface](gs-set-up-cli.md)
+ Latihan 1 — Buat dan uji bot Amazon Lex. Latihan ini menyediakan semua objek JSON yang Anda butuhkan untuk membuat jenis slot khusus, maksud, dan bot. Untuk informasi selengkapnya, lihat [Amazon Lex: Cara Kerjanya](how-it-works.md)
+ Latihan 2 — Perbarui bot yang Anda buat di Latihan 1 untuk menambahkan contoh ucapan tambahan. Amazon Lex menggunakan contoh ucapan untuk membangun model pembelajaran mesin untuk bot Anda.
+ Latihan 3 — Perbarui bot yang Anda buat di Latihan 1 untuk menambahkan fungsi Lambda untuk memvalidasi input pengguna dan memenuhi intent.
+ Latihan 4 — Publikasikan versi jenis slot, maksud, dan sumber daya bot yang Anda buat di Latihan 1. Versi adalah snapshot dari sumber daya yang tidak dapat diubah.
+ Latihan 5 — Buat alias untuk bot yang Anda buat di Latihan 1.
+ Latihan 6 — Bersihkan akun Anda dengan menghapus jenis slot, maksud, dan bot yang Anda buat di Latihan 1, dan alias yang Anda buat di Latihan 5.

**Topics**
+ [Latihan 1: Buat Amazon Lex Bot (AWS CLI)](gs-cli-create.md)
+ [Latihan 2: Tambahkan Ucapan Baru ()AWS CLI](gs-cli-update-utterance.md)
+ [Latihan 3: Tambahkan Fungsi Lambda ()AWS CLI](gs-cli-update-lambda.md)
+ [Latihan 4: Publikasikan Versi (AWS CLI)](gs-cli-publish.md)
+ [Latihan 5: Buat Alias ()AWS CLI](gs-cli-create-alias.md)
+ [Latihan 6: Bersihkan (AWS CLI)](gs-cli-clean-up.md)

# Latihan 1: Buat Amazon Lex Bot (AWS CLI)
<a name="gs-cli-create"></a>

Secara umum, saat Anda membuat bot, Anda:

1. Buat jenis slot untuk menentukan informasi yang bot Anda akan bekerja dengan.

1. Buat maksud yang menentukan tindakan pengguna yang didukung bot Anda. Gunakan jenis slot khusus yang Anda buat sebelumnya untuk menentukan slot, atau parameter, yang dibutuhkan maksud Anda.

1. Buat bot yang menggunakan maksud yang Anda tentukan. 

Dalam latihan ini Anda membuat dan menguji bot Amazon Lex baru menggunakan CLI. Gunakan struktur JSON yang kami sediakan untuk membuat bot. Untuk menjalankan perintah dalam latihan ini, Anda perlu mengetahui wilayah di mana perintah akan dijalankan. Untuk daftar wilayah, lihat[Kuota Bangunan Model](gl-limits.md#gl-limits-model-building).

**Topics**
+ [Langkah 1: Buat Peran Tertaut Layanan ()AWS CLI](gs-create-role.md)
+ [Langkah 2: Buat Jenis Slot Kustom (AWS CLI)](gs-create-flower-types.md)
+ [Langkah 3: Buat Intent ()AWS CLI](gs-cli-create-order-flowers.md)
+ [Langkah 4: Buat Bot (AWS CLI)](gs-cli-create-order-flowers-bot.md)
+ [Langkah 5: Uji Bot (AWS CLI)](gs-create-test.md)

# Langkah 1: Buat Peran Tertaut Layanan ()AWS CLI
<a name="gs-create-role"></a>

Amazon Lex mengasumsikan peran AWS Identity and Access Management terkait layanan untuk memanggil AWS layanan atas nama bot Anda. Peran, yang ada di akun Anda, ditautkan ke kasus penggunaan Amazon Lex dan memiliki izin yang telah ditentukan sebelumnya. Untuk informasi selengkapnya, lihat [Menggunakan Peran Tertaut Layanan untuk Amazon Lex](using-service-linked-roles.md).

Jika Anda telah membuat bot Amazon Lex menggunakan konsol, peran terkait layanan dibuat secara otomatis. Loncat ke [Langkah 2: Buat Jenis Slot Kustom (AWS CLI)](gs-create-flower-types.md). 

**Untuk membuat peran terkait layanan (AWS CLI)**

1. Dalam AWS CLI, ketik perintah berikut:

   ```
   aws iam create-service-linked-role --aws-service-name lex.amazonaws.com
   ```

1. Periksa kebijakan menggunakan perintah berikut:

   ```
   aws iam get-role --role-name AWSServiceRoleForLexBots
   ```

   Tanggapannya adalah:

## Langkah Selanjutnya
<a name="gs-create-next-2"></a>

[Langkah 2: Buat Jenis Slot Kustom (AWS CLI)](gs-create-flower-types.md)

# Langkah 2: Buat Jenis Slot Kustom (AWS CLI)
<a name="gs-create-flower-types"></a>

Buat jenis slot khusus dengan nilai enumerasi untuk bunga yang dapat dipesan. Anda menggunakan jenis ini di langkah berikutnya saat membuat `OrderFlowers` intent. *Jenis slot* mendefinisikan nilai yang mungkin untuk slot, atau parameter, dari maksud.

Untuk menjalankan perintah dalam latihan ini, Anda perlu mengetahui wilayah di mana perintah akan dijalankan. Untuk daftar wilayah, lihat[Kuota Bangunan Model](gl-limits.md#gl-limits-model-building).

**Untuk membuat jenis slot khusus (AWS CLI)**

1. Buat file teks bernama **FlowerTypes.json**. Salin kode JSON dari [FlowerTypes.json](gs-cli-create-flower-types-json.md) ke dalam file teks.

1. Panggil [PutSlotType](API_PutSlotType.md) operasi menggunakan AWS CLI untuk membuat jenis slot. Contoh diformat untuk Unix, Linux, dan macOS. Untuk Windows, ganti karakter kelanjutan backslash (\$1) Unix di akhir setiap baris dengan tanda sisipan (^).

   ```
   aws lex-models put-slot-type \
       --region region \
       --name FlowerTypes \
       --cli-input-json file://FlowerTypes.json
   ```

   Tanggapan dari server adalah:

   ```
   {
       "enumerationValues": [
           {
               "value": "tulips"
           }, 
           {
               "value": "lilies"
           }, 
           {
               "value": "roses"
           }
       ], 
       "name": "FlowerTypes", 
       "checksum": "checksum", 
       "version": "$LATEST", 
       "lastUpdatedDate": timestamp, 
       "createdDate": timestamp, 
       "description": "Types of flowers to pick up"
   }
   ```

## Langkah Selanjutnya
<a name="gs-create-next-3"></a>

[Langkah 3: Buat Intent ()AWS CLI](gs-cli-create-order-flowers.md)

# FlowerTypes.json
<a name="gs-cli-create-flower-types-json"></a>

Kode berikut adalah data JSON yang diperlukan untuk membuat jenis slot `FlowerTypes` khusus:

```
{
    "enumerationValues": [
        {
            "value": "tulips"
        },
        {
            "value": "lilies"
        },
        {
            "value": "roses"
        }
    ],
    "name": "FlowerTypes",
    "description": "Types of flowers to pick up"
}
```

# Langkah 3: Buat Intent ()AWS CLI
<a name="gs-cli-create-order-flowers"></a>

Buat maksud untuk `OrderFlowersBot` bot dan berikan tiga slot, atau parameter. Slot memungkinkan bot untuk memenuhi maksud:
+ `FlowerType`adalah jenis slot khusus yang menentukan jenis bunga mana yang dapat dipesan.
+ `AMAZON.DATE`dan `AMAZON.TIME` merupakan jenis slot bawaan yang digunakan untuk mendapatkan tanggal dan waktu untuk mengirimkan bunga dari pengguna.

Untuk menjalankan perintah dalam latihan ini, Anda perlu mengetahui wilayah di mana perintah akan dijalankan. Untuk daftar wilayah, lihat[Kuota Bangunan Model](gl-limits.md#gl-limits-model-building).

**Untuk membuat `OrderFlowers` maksud ()AWS CLI**

1. Buat file teks bernama **OrderFlowers.json**. Salin kode JSON dari [OrderFlowers.json](gs-cli-create-order-flowers-json.md) ke dalam file teks.

1. Di AWS CLI, panggil [PutIntent](API_PutIntent.md) operasi untuk membuat maksud. Contoh diformat untuk Unix, Linux, dan macOS. Untuk Windows, ganti karakter kelanjutan backslash (\$1) Unix di akhir setiap baris dengan tanda sisipan (^).

   ```
   aws lex-models put-intent \
      --region region \
      --name OrderFlowers \
      --cli-input-json file://OrderFlowers.json
   ```

   Server merespons dengan yang berikut:

## Langkah Selanjutnya
<a name="gs-create-next-4"></a>

[Langkah 4: Buat Bot (AWS CLI)](gs-cli-create-order-flowers-bot.md)

# OrderFlowers.json
<a name="gs-cli-create-order-flowers-json"></a>

Kode berikut adalah data JSON yang diperlukan untuk membuat `OrderFlowers` maksud:

```
{
    "confirmationPrompt": {
        "maxAttempts": 2,
        "messages": [
            {
                "content": "Okay, your {FlowerType} will be ready for pickup by {PickupTime} on {PickupDate}.  Does this sound okay?",
                "contentType": "PlainText"
            }
        ]
    },
    "name": "OrderFlowers",
    "rejectionStatement": {
        "messages": [
            {
                "content": "Okay, I will not place your order.",
                "contentType": "PlainText"
            }
        ]
    },
    "sampleUtterances": [
        "I would like to pick up flowers",
        "I would like to order some flowers"
    ],
    "slots": [
        {
            "slotType": "FlowerTypes",
            "name": "FlowerType",
            "slotConstraint": "Required",
            "valueElicitationPrompt": {
                "maxAttempts": 2,
                "messages": [
                    {
                        "content": "What type of flowers would you like to order?",
                        "contentType": "PlainText"
                    }
                ]
            },
            "priority": 1,
            "slotTypeVersion": "$LATEST",
            "sampleUtterances": [
                "I would like to order {FlowerType}"
            ],
            "description": "The type of flowers to pick up"
        },
        {
            "slotType": "AMAZON.DATE",
            "name": "PickupDate",
            "slotConstraint": "Required",
            "valueElicitationPrompt": {
                "maxAttempts": 2,
                "messages": [
                    {
                        "content": "What day do you want the {FlowerType} to be picked up?",
                        "contentType": "PlainText"
                    }
                ]
            },
            "priority": 2,
            "description": "The date to pick up the flowers"
        },
        {
            "slotType": "AMAZON.TIME",
            "name": "PickupTime",
            "slotConstraint": "Required",
            "valueElicitationPrompt": {
                "maxAttempts": 2,
                "messages": [
                    {
                        "content": "Pick up the {FlowerType} at what time on {PickupDate}?",
                        "contentType": "PlainText"
                    }
                ]
            },
            "priority": 3,
            "description": "The time to pick up the flowers"
        }
    ],
    "fulfillmentActivity": {
        "type": "ReturnIntent"
    },
    "description": "Intent to order a bouquet of flowers for pick up"
}
```

# Langkah 4: Buat Bot (AWS CLI)
<a name="gs-cli-create-order-flowers-bot"></a>

`OrderFlowersBot`Bot memiliki satu maksud, `OrderFlowers` maksud yang Anda buat di langkah sebelumnya. Untuk menjalankan perintah dalam latihan ini, Anda perlu mengetahui wilayah di mana perintah akan dijalankan. Untuk daftar wilayah, lihat[Kuota Bangunan Model](gl-limits.md#gl-limits-model-building).

**catatan**  
 AWS CLI Contoh berikut diformat untuk Unix, Linux, dan macOS. Untuk Windows, ubah `"\$LATEST"` ke`$LATEST`.

**Untuk membuat `OrderFlowersBot` bot (AWS CLI)**

1. Buat file teks bernama **OrderFlowersBot.json**. Salin kode JSON dari [OrderFlowersBot.json](gs-cli-create-order-flowers-bot-json.md) ke dalam file teks.

1. Di AWS CLI, panggil [PutBot](API_PutBot.md) operasi untuk membuat bot. Contoh diformat untuk Unix, Linux, dan macOS. Untuk Windows, ganti karakter kelanjutan backslash (\$1) Unix di akhir setiap baris dengan tanda sisipan (^).

   ```
   aws lex-models put-bot \
       --region region \
       --name OrderFlowersBot \
       --cli-input-json file://OrderFlowersBot.json
   ```

   Respons dari server berikut. Saat Anda membuat atau memperbarui bot, `status` bidang diatur ke`BUILDING`. Ini menunjukkan bahwa bot belum siap digunakan. Untuk menentukan kapan bot siap digunakan, gunakan [GetBot](API_GetBot.md) operasi di langkah berikutnya. 

   

1. Untuk menentukan apakah bot baru Anda siap digunakan, jalankan perintah berikut. Ulangi perintah ini sampai `status` bidang kembali`READY`. Contoh diformat untuk Unix, Linux, dan macOS. Untuk Windows, ganti karakter kelanjutan backslash (\$1) Unix di akhir setiap baris dengan tanda sisipan (^).

   ```
   aws lex-models get-bot \
       --region region \
       --name OrderFlowersBot \
       --version-or-alias "\$LATEST"
   ```

   Cari `status` bidang dalam tanggapan:

   ```
   {
       "status": "READY", 
       
       ...
       
   }
   ```

## Langkah Selanjutnya
<a name="gs-create-next-5"></a>

[Langkah 5: Uji Bot (AWS CLI)](gs-create-test.md)

# OrderFlowersBot.json
<a name="gs-cli-create-order-flowers-bot-json"></a>

Kode berikut menyediakan data JSON yang diperlukan untuk membangun bot `OrderFlowers` Amazon Lex:

```
{
    "intents": [
        {
            "intentVersion": "$LATEST",
            "intentName": "OrderFlowers"
        }
    ],
    "name": "OrderFlowersBot",
    "locale": "en-US",
    "abortStatement": {
        "messages": [
            {
                "content": "Sorry, I'm not able to assist at this time",
                "contentType": "PlainText"
            }
        ]
    },
    "clarificationPrompt": {
        "maxAttempts": 2,
        "messages": [
            {
                "content": "I didn't understand you, what would you like to do?",
                "contentType": "PlainText"
            }
        ]
    },
    "voiceId": "Salli",
    "childDirected": false,
    "idleSessionTTLInSeconds": 600,
    "description": "Bot to order flowers on the behalf of a user"
}
```

# Langkah 5: Uji Bot (AWS CLI)
<a name="gs-create-test"></a>

Untuk menguji bot, Anda dapat menggunakan tes berbasis teks atau berbasis ucapan.

**Topics**
+ [Uji Bot Menggunakan Input Teks (AWS CLI)](gs-create-test-text.md)
+ [Uji Bot Menggunakan Speech Input (AWS CLI)](gs-create-test-speech.md)

# Uji Bot Menggunakan Input Teks (AWS CLI)
<a name="gs-create-test-text"></a>

 Untuk memverifikasi bahwa bot berfungsi dengan benar dengan input teks, gunakan [PostText](API_runtime_PostText.md) operasi. Untuk menjalankan perintah dalam latihan ini, Anda perlu mengetahui wilayah di mana perintah akan dijalankan. Untuk daftar wilayah, lihat[Service Quotas Runtime](gl-limits.md#gl-limits-runtime).

**catatan**  
 AWS CLI Contoh berikut diformat untuk Unix, Linux, dan macOS. Untuk Windows, ubah `"\$LATEST"` ke `$LATEST` dan ganti karakter kelanjutan garis miring terbalik (\$1) di akhir setiap baris dengan tanda sisipan (^).

**Untuk menggunakan teks untuk menguji bot (AWS CLI)**

1. Di AWS CLI, mulailah percakapan dengan `OrderFlowersBot` bot. Contoh diformat untuk Unix, Linux, dan macOS. Untuk Windows, ganti karakter kelanjutan backslash (\$1) Unix di akhir setiap baris dengan tanda sisipan (^).

   ```
   aws lex-runtime post-text \
       --region region \
       --bot-name OrderFlowersBot \
       --bot-alias "\$LATEST" \
       --user-id UserOne \
       --input-text "i would like to order flowers"
   ```

   Amazon Lex mengenali maksud pengguna dan memulai percakapan dengan mengembalikan respons berikut:

   ```
   {
       "slotToElicit": "FlowerType", 
       "slots": {
           "PickupDate": null, 
           "PickupTime": null, 
           "FlowerType": null
       }, 
       "dialogState": "ElicitSlot", 
       "message": "What type of flowers would you like to order?", 
       "intentName": "OrderFlowers"
   }
   ```

1. Jalankan perintah berikut untuk menyelesaikan percakapan dengan bot.

   ```
   aws lex-runtime post-text \
       --region region \
       --bot-name OrderFlowersBot \
       --bot-alias "\$LATEST" \
       --user-id UserOne \
       --input-text "roses"
   ```

   ```
   aws lex-runtime post-text  \
       --region region \
       --bot-name OrderFlowersBot \
       --bot-alias "\$LATEST" \
       --user-id UserOne \
       --input-text "tuesday"
   ```

   ```
   aws lex-runtime post-text  \
       --region region \
       --bot-name OrderFlowersBot --bot-alias "\$LATEST" \
       --user-id UserOne \
       --input-text "10:00 a.m."
   ```

   ```
   aws lex-runtime post-text  \
       --region region \
       --bot-name OrderFlowersBot \
       --bot-alias "\$LATEST" \
       --user-id UserOne \
       --input-text "yes"
   ```

    Setelah Anda mengkonfirmasi pesanan, Amazon Lex mengirimkan respons pemenuhan untuk menyelesaikan percakapan: 

   ```
   {
       "slots": {
           "PickupDate": "2017-05-16", 
           "PickupTime": "10:00", 
           "FlowerType": "roses"
       }, 
       "dialogState": "ReadyForFulfillment", 
       "intentName": "OrderFlowers"
   }
   ```

## Langkah Selanjutnya
<a name="gs-create-next-test"></a>

[Uji Bot Menggunakan Speech Input (AWS CLI)](gs-create-test-speech.md)

# Uji Bot Menggunakan Speech Input (AWS CLI)
<a name="gs-create-test-speech"></a>

Untuk menguji bot menggunakan file audio, gunakan [PostContent](API_runtime_PostContent.md) operasi. Anda menghasilkan file audio menggunakan operasi Amazon Polly text-to-speech.

Untuk menjalankan perintah dalam latihan ini, Anda perlu mengetahui wilayah mana perintah Amazon Lex dan Amazon Polly akan dijalankan. Untuk daftar wilayah untuk Amazon Lex, lihat[Service Quotas Runtime](gl-limits.md#gl-limits-runtime). Untuk daftar wilayah Amazon Polly, lihat [AWS Wilayah dan Titik Akhir](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region) di Referensi Umum *Amazon Web Services*.

**catatan**  
 AWS CLI Contoh berikut diformat untuk Unix, Linux, dan macOS. Untuk Windows, ubah `"\$LATEST"` ke `$LATEST` dan ganti karakter kelanjutan garis miring terbalik (\$1) di akhir setiap baris dengan tanda sisipan (^).

**Untuk menggunakan input ucapan untuk menguji bot (AWS CLI)**

1. Di AWS CLI, buat file audio menggunakan Amazon Polly. Contoh diformat untuk Unix, Linux, dan macOS. Untuk Windows, ganti karakter kelanjutan backslash (\$1) Unix di akhir setiap baris dengan tanda sisipan (^).

   ```
   aws polly synthesize-speech \
       --region region \
       --output-format pcm \
       --text "i would like to order flowers" \
       --voice-id "Salli" \
       IntentSpeech.mpg
   ```

1. Untuk mengirim file audio ke Amazon Lex, jalankan perintah berikut. Amazon Lex menyimpan audio dari respons dalam file output yang ditentukan. 

   ```
   aws lex-runtime post-content \
       --region region \
       --bot-name OrderFlowersBot \
       --bot-alias "\$LATEST" \
       --user-id UserOne \
       --content-type "audio/l16; rate=16000; channels=1" \
       --input-stream IntentSpeech.mpg \
       IntentOutputSpeech.mpg
   ```

   Amazon Lex merespons dengan permintaan untuk slot pertama. Ini menyimpan respons audio dalam file output yang ditentukan.

   ```
   {
       "contentType": "audio/mpeg", 
       "slotToElicit": "FlowerType", 
       "dialogState": "ElicitSlot", 
       "intentName": "OrderFlowers", 
       "inputTranscript": "i would like to order some flowers", 
       "slots": {
           "PickupDate": null, 
           "PickupTime": null, 
           "FlowerType": null
       }, 
       "message": "What type of flowers would you like to order?"
   }
   ```

1. Untuk memesan mawar, buat file audio berikut dan kirimkan ke Amazon Lex:

   ```
   aws polly synthesize-speech \
       --region region \
       --output-format pcm \
       --text "roses" \
       --voice-id "Salli" \ 
       FlowerTypeSpeech.mpg
   ```

   ```
   aws lex-runtime post-content \
       --region region \
       --bot-name OrderFlowersBot \
       --bot-alias "\$LATEST" \
       --user-id UserOne \
       --content-type "audio/l16; rate=16000; channels=1" \
       --input-stream FlowerTypeSpeech.mpg \
       FlowerTypeOutputSpeech.mpg
   ```

1. Untuk mengatur tanggal pengiriman, buat file audio berikut dan kirimkan ke Amazon Lex:

   ```
   aws polly synthesize-speech \
       --region region \
       --output-format pcm \
       --text "tuesday" \
       --voice-id "Salli" \ 
       DateSpeech.mpg
   ```

   ```
   aws lex-runtime post-content \
       --region region \
       --bot-name OrderFlowersBot \
       --bot-alias "\$LATEST" \
       --user-id UserOne \
       --content-type "audio/l16; rate=16000; channels=1" \
       --input-stream DateSpeech.mpg \
       DateOutputSpeech.mpg
   ```

1. Untuk mengatur waktu pengiriman, buat file audio berikut dan kirimkan ke Amazon Lex:

   ```
   aws polly synthesize-speech \
       --region region \
       --output-format pcm \
       --text "10:00 a.m." \
       --voice-id "Salli" \
       TimeSpeech.mpg
   ```

   ```
   aws lex-runtime post-content \
       --region region \
       --bot-name OrderFlowersBot \
       --bot-alias "\$LATEST" \
       --user-id UserOne \
       --content-type "audio/l16; rate=16000; channels=1" \
       --input-stream TimeSpeech.mpg \
       TimeOutputSpeech.mpg
   ```

1. Untuk mengonfirmasi pengiriman, buat file audio berikut dan kirimkan ke Amazon Lex:

   ```
   aws polly synthesize-speech \
       --region region \
       --output-format pcm \
       --text "yes" \
       --voice-id "Salli" \
       ConfirmSpeech.mpg
   ```

   ```
   aws lex-runtime post-content \
       --region region \
       --bot-name OrderFlowersBot \
       --bot-alias "\$LATEST" \
       --user-id UserOne \
       --content-type "audio/l16; rate=16000; channels=1" \
       --input-stream ConfirmSpeech.mpg \
       ConfirmOutputSpeech.mpg
   ```

   Setelah Anda mengonfirmasi pengiriman, Amazon Lex mengirimkan respons yang mengonfirmasi pemenuhan maksud: 

   ```
   {
       "contentType": "text/plain;charset=utf-8", 
       "dialogState": "ReadyForFulfillment", 
       "intentName": "OrderFlowers", 
       "inputTranscript": "yes", 
       "slots": {
           "PickupDate": "2017-05-16", 
           "PickupTime": "10:00", 
           "FlowerType": "roses"
       }
   }
   ```

## Langkah Selanjutnya
<a name="gs-cli-next-exercise-2"></a>

[Latihan 2: Tambahkan Ucapan Baru ()AWS CLI](gs-cli-update-utterance.md)

# Latihan 2: Tambahkan Ucapan Baru ()AWS CLI
<a name="gs-cli-update-utterance"></a>

Untuk meningkatkan model pembelajaran mesin yang digunakan Amazon Lex untuk mengenali permintaan dari pengguna Anda, tambahkan contoh ucapan lain ke bot. 

Menambahkan ucapan baru adalah proses empat langkah.

1. Gunakan [GetIntent](API_GetIntent.md) operasi untuk mendapatkan maksud dari Amazon Lex.

1. Perbarui maksudnya.

1. Gunakan [PutIntent](API_PutIntent.md) operasi untuk mengirim intent yang diperbarui kembali ke Amazon Lex.

1. Gunakan [GetBot](API_GetBot.md) dan [PutBot](API_PutBot.md) operasi untuk membangun kembali bot apa pun yang menggunakan intent.

Untuk menjalankan perintah dalam latihan ini, Anda perlu mengetahui wilayah di mana perintah akan dijalankan. Untuk daftar wilayah, lihat[Kuota Bangunan Model](gl-limits.md#gl-limits-model-building).

Respons dari `GetIntent` operasi berisi bidang yang disebut `checksum` yang mengidentifikasi revisi spesifik dari maksud. Anda harus memberikan nilai checksum saat Anda menggunakan [PutIntent](API_PutIntent.md) operasi untuk memperbarui maksud. Jika tidak, Anda akan mendapatkan pesan galat berikut:

```
            An error occurred (PreconditionFailedException) when calling 
            the PutIntent operation: Intent intent name already exists. 
            If you are trying to update intent name you must specify the 
            checksum.
```

**catatan**  
 AWS CLI Contoh berikut diformat untuk Unix, Linux, dan macOS. Untuk Windows, ubah `"\$LATEST"` ke `$LATEST` dan ganti karakter kelanjutan garis miring terbalik (\$1) di akhir setiap baris dengan tanda sisipan (^).

**Untuk memperbarui `OrderFlowers` intent ()AWS CLI**

1. Di AWS CLI, dapatkan niat dari Amazon Lex. Amazon Lex mengirimkan output ke file bernama **OrderFlowers-V2.json.**

   ```
   aws lex-models get-intent \
       --region region \
       --name OrderFlowers \
       --intent-version "\$LATEST" > OrderFlowers-V2.json
   ```

1. Buka **OrderFlowers-V2.json** di editor teks.

   1. Temukan dan hapus`createdDate`,`lastUpdatedDate`, dan `version` bidang.

   1. Tambahkan yang berikut ini ke `sampleUtterances` bidang:

      ```
      I want to order flowers
      ```

   1. Simpan file tersebut.

1. Kirim intent yang diperbarui ke Amazon Lex dengan perintah berikut:

   ```
   aws lex-models put-intent  \
       --region region \
       --name OrderFlowers \
       --cli-input-json file://OrderFlowers-V2.json
   ```

   Amazon Lex mengirimkan tanggapan berikut:

Sekarang setelah Anda memperbarui intent, buat kembali bot apa pun yang menggunakannya. 

**Untuk membangun kembali `OrderFlowersBot` bot ()AWS CLI**

1. Di AWS CLI, dapatkan definisi `OrderFlowersBot` bot dan simpan ke file dengan perintah berikut:

   ```
   aws lex-models get-bot \
       --region region \
       --name OrderFlowersBot \
       --version-or-alias "\$LATEST" > OrderFlowersBot-V2.json
   ```

1. Dalam editor teks, buka**OrderFlowersBot-V2.json**. Hapus`createdDate`,`lastUpdatedDate`, `status` dan `version` bidang.

1. Dalam editor teks, tambahkan baris berikut ke definisi bot:

   ```
   "processBehavior": "BUILD",
   ```

1. Di AWS CLI, buat revisi baru bot dengan menjalankan perintah berikut untuk:

   ```
   aws lex-models put-bot \
       --region region \
       --name OrderFlowersBot \
       --cli-input-json file://OrderFlowersBot-V2.json
   ```

   Tanggapan dari server adalah:

## Langkah Selanjutnya
<a name="gs-cli-next-exercise-3"></a>

[Latihan 3: Tambahkan Fungsi Lambda ()AWS CLI](gs-cli-update-lambda.md)

# Latihan 3: Tambahkan Fungsi Lambda ()AWS CLI
<a name="gs-cli-update-lambda"></a>

Tambahkan fungsi Lambda yang memvalidasi input pengguna dan memenuhi maksud pengguna ke bot.

Menambahkan ekspresi Lambda adalah proses lima langkah.

1. [Gunakan [AddPermission](https://docs.aws.amazon.com/lambda/latest/dg/API_AddPermission.html)fungsi Lambda untuk mengaktifkan `OrderFlowers` intent untuk memanggil operasi Lambda Invoke.](https://docs.aws.amazon.com/lambda/latest/dg/lambda-api-permissions-ref.html)

1. Gunakan [GetIntent](API_GetIntent.md) operasi untuk mendapatkan maksud dari Amazon Lex.

1. Perbarui maksud untuk menambahkan fungsi Lambda.

1. Gunakan [PutIntent](API_PutIntent.md) operasi untuk mengirim intent yang diperbarui kembali ke Amazon Lex.

1. Gunakan [GetBot](API_GetBot.md) dan [PutBot](API_PutBot.md) operasi untuk membangun kembali bot apa pun yang menggunakan intent.

Untuk menjalankan perintah dalam latihan ini, Anda perlu mengetahui wilayah di mana perintah akan dijalankan. Untuk daftar wilayah, lihat[Kuota Bangunan Model](gl-limits.md#gl-limits-model-building).

Jika Anda menambahkan fungsi Lambda ke intent sebelum menambahkan `InvokeFunction` izin, Anda mendapatkan pesan galat berikut:

```
            An error occurred (BadRequestException) when calling the 
            PutIntent operation: Lex is unable to access the Lambda 
            function Lambda function ARN in the context of intent 
            intent ARN.  Please check the resource-based policy on 
            the function.
```

Respons dari `GetIntent` operasi berisi bidang yang disebut `checksum` yang mengidentifikasi revisi spesifik dari maksud. Saat Anda menggunakan [PutIntent](API_PutIntent.md) operasi untuk memperbarui maksud, Anda harus memberikan nilai checksum. Jika tidak, Anda mendapatkan pesan galat berikut:

```
            An error occurred (PreconditionFailedException) when calling 
            the PutIntent operation: Intent intent name already exists. 
            If you are trying to update intent name you must specify the 
            checksum.
```

Latihan ini menggunakan fungsi Lambda dari. [Latihan 1: Membuat Bot Amazon Lex Menggunakan Blueprint (Konsol)](gs-bp.md) Untuk instruksi untuk membuat fungsi Lambda, lihat. [Langkah 3: Buat Fungsi Lambda (Konsol)](gs-bp-create-lambda-function.md)

**catatan**  
 AWS CLI Contoh berikut diformat untuk Unix, Linux, dan macOS. Untuk Windows, ubah `"\$LATEST"` ke`$LATEST`.

**Untuk menambahkan fungsi Lambda ke intent**

1. Di AWS CLI, tambahkan `InvokeFunction` izin untuk `OrderFlowers` maksud:

   ```
   aws lambda add-permission \
       --region region \
       --function-name OrderFlowersCodeHook \
       --statement-id LexGettingStarted-OrderFlowersBot \
       --action lambda:InvokeFunction \
       --principal lex.amazonaws.com \
       --source-arn "arn:aws:lex:region:account ID:intent:OrderFlowers:*"
       --source-account account ID
   ```

   Lambda mengirimkan tanggapan berikut:

   ```
   {
       "Statement": "{\"Sid\":\"LexGettingStarted-OrderFlowersBot\",
         \"Resource\":\"arn:aws:lambda:region:account ID:function:OrderFlowersCodeHook\",
         \"Effect\":\"Allow\",
         \"Principal\":{\"Service\":\"lex.amazonaws.com\"},
         \"Action\":[\"lambda:InvokeFunction\"],
         \"Condition\":{\"StringEquals\":
           {\"AWS:SourceAccount\": \"account ID\"},
           {\"AWS:SourceArn\":
             \"arn:aws:lex:region:account ID:intent:OrderFlowers:*\"}}}"
   }
   ```

1. Dapatkan niat dari Amazon Lex. Amazon Lex mengirimkan output ke file bernama**OrderFlowers-V3.json**.

   ```
   aws lex-models get-intent \
       --region region \
       --name OrderFlowers \
       --intent-version "\$LATEST" > OrderFlowers-V3.json
   ```

1. Dalam editor teks, buka file**OrderFlowers-V3.json**.

   1. Temukan dan hapus`createdDate`,`lastUpdatedDate`, dan `version` bidang.

   1. Perbarui `fulfillmentActivity` bidang:

      ```
          "fulfillmentActivity": {
              "type": "CodeHook",
              "codeHook": {
                  "uri": "arn:aws:lambda:region:account ID:function:OrderFlowersCodeHook",
                  "messageVersion": "1.0"
              }
          }
      ```

   1. Simpan file tersebut.

1. Di AWS CLI, kirim maksud yang diperbarui ke Amazon Lex:

   ```
   aws lex-models put-intent \
       --region region \
       --name OrderFlowers \
       --cli-input-json file://OrderFlowers-V3.json
   ```

Sekarang setelah Anda memperbarui intent, bangun kembali bot. 

**Untuk membangun kembali bot `OrderFlowersBot`**

1. Di AWS CLI, dapatkan definisi `OrderFlowersBot` bot dan simpan ke file:

   ```
   aws lex-models get-bot \
       --region region \
       --name OrderFlowersBot \
       --version-or-alias "\$LATEST" > OrderFlowersBot-V3.json
   ```

1. Dalam editor teks, buka**OrderFlowersBot-V3.json**. Hapus`createdDate`,`lastUpdatedDate`,`status`, dan `version` bidang.

1. Di editor teks, tambahkan baris berikut ke definisi bot:

   ```
   "processBehavior": "BUILD",
   ```

1. Di AWS CLI, buat revisi baru bot:

   ```
   aws lex-models put-bot \
       --region region \
       --name OrderFlowersBot \
       --cli-input-json file://OrderFlowersBot-V3.json
   ```

   Tanggapan dari server adalah:

## Langkah Selanjutnya
<a name="gs-cli-next-exercise-4"></a>

[Latihan 4: Publikasikan Versi (AWS CLI)](gs-cli-publish.md)

# Latihan 4: Publikasikan Versi (AWS CLI)
<a name="gs-cli-publish"></a>

Sekarang, buat versi bot yang Anda buat di Latihan 1. *Versi* adalah snapshot bot. Setelah Anda membuat versi, Anda tidak dapat mengubahnya. Satu-satunya versi bot yang dapat Anda perbarui adalah `$LATEST` versinya. Untuk informasi selengkapnya tentang versi, lihat[Pembuatan Versi dan Alias](versioning-aliases.md). 

Sebelum Anda dapat mempublikasikan versi bot, Anda harus mempublikasikan maksud yang digunakan. Demikian juga, Anda harus mempublikasikan jenis slot yang dimaksud maksud tersebut. Secara umum, untuk menerbitkan versi bot, Anda melakukan hal berikut:

1. Publikasikan versi jenis slot dengan [CreateSlotTypeVersion](API_CreateSlotTypeVersion.md) operasi.

1. Publikasikan versi intent dengan [CreateIntentVersion](API_CreateIntentVersion.md) operasi.

1. Publikasikan versi bot dengan [CreateBotVersion](API_CreateBotVersion.md) operasi.

Untuk menjalankan perintah dalam latihan ini, Anda perlu mengetahui wilayah di mana perintah akan dijalankan. Untuk daftar wilayah, lihat[Kuota Bangunan Model](gl-limits.md#gl-limits-model-building).

**Topics**
+ [Langkah 1: Publikasikan Jenis Slot (AWS CLI)](gs-cli-publish-slot-type.md)
+ [Langkah 2: Publikasikan Intent ()AWS CLI](gs-cli-publish-intent.md)
+ [Langkah 3: Publikasikan Bot (AWS CLI)](gs-cli-publish-bot.md)

# Langkah 1: Publikasikan Jenis Slot (AWS CLI)
<a name="gs-cli-publish-slot-type"></a>

Sebelum Anda dapat mempublikasikan versi maksud apa pun yang menggunakan jenis slot, Anda harus mempublikasikan versi jenis slot itu. Dalam hal ini, Anda mempublikasikan jenis `FlowerTypes` slot. 

**catatan**  
 AWS CLI Contoh berikut diformat untuk Unix, Linux, dan macOS. Untuk Windows, ubah `"\$LATEST"` ke `$LATEST` dan ganti karakter kelanjutan garis miring terbalik (\$1) di akhir setiap baris dengan tanda sisipan (^).

**Untuk mempublikasikan jenis slot (AWS CLI)**

1. Di dalam AWS CLI, dapatkan versi terbaru dari jenis slot:

   ```
   aws lex-models get-slot-type \
       --region region \
       --name FlowerTypes \
       --slot-type-version "\$LATEST"
   ```

   Tanggapan dari Amazon Lex berikut. Catat checksum untuk revisi versi saat ini. `$LATEST`

   ```
   {
       "enumerationValues": [
           {
               "value": "tulips"
           }, 
           {
               "value": "lilies"
           }, 
           {
               "value": "roses"
           }
       ], 
       "name": "FlowerTypes", 
       "checksum": "checksum", 
       "version": "$LATEST", 
       "lastUpdatedDate": timestamp, 
       "createdDate": timestamp, 
       "description": "Types of flowers to pick up"
   }
   ```

1. Publikasikan versi jenis slot. Gunakan checksum yang Anda rekam pada langkah sebelumnya.

   ```
   aws lex-models create-slot-type-version \
       --region region \
       --name FlowerTypes \
       --checksum "checksum"
   ```

   Tanggapan dari Amazon Lex berikut. Catat nomor versi untuk langkah selanjutnya.

   ```
   {
       "version": "1", 
       "enumerationValues": [
           {
               "value": "tulips"
           }, 
           {
               "value": "lilies"
           }, 
           {
               "value": "roses"
           }
       ], 
       "name": "FlowerTypes", 
       "createdDate": timestamp, 
       "lastUpdatedDate": timestamp, 
       "description": "Types of flowers to pick up"
   }
   ```

## Langkah Selanjutnya
<a name="gs-cli-publish-2"></a>

[Langkah 2: Publikasikan Intent ()AWS CLI](gs-cli-publish-intent.md)

# Langkah 2: Publikasikan Intent ()AWS CLI
<a name="gs-cli-publish-intent"></a>

Sebelum Anda dapat mempublikasikan maksud, Anda harus mempublikasikan semua jenis slot yang dirujuk oleh maksud. Jenis slot harus versi bernomor, bukan `$LATEST` versi.

Pertama, perbarui `OrderFlowers` maksud untuk menggunakan versi jenis `FlowerTypes` slot yang Anda terbitkan di langkah sebelumnya. Kemudian publikasikan versi baru dari `OrderFlowers` intent.

**catatan**  
 AWS CLI Contoh berikut diformat untuk Unix, Linux, dan macOS. Untuk Windows, ubah `"\$LATEST"` ke `$LATEST` dan ganti karakter kelanjutan garis miring terbalik (\$1) di akhir setiap baris dengan tanda sisipan (^).

**Untuk memublikasikan versi intent ()AWS CLI**

1. Di AWS CLI, dapatkan `$LATEST` versi `OrderFlowers` intent dan simpan ke file:

   ```
   aws lex-models get-intent \
       --region region \
       --name OrderFlowers \
       --intent-version "\$LATEST" > OrderFlowers_V4.json
   ```

1. Dalam editor teks, buka **OrderFlowers\$1V4.json** file. Hapus`createdDate`,`lastUpdatedDate`, dan `version` bidang. Temukan jenis `FlowerTypes` slot dan ubah versi ke nomor versi yang Anda rekam pada langkah sebelumnya. Fragmen **OrderFlowers\$1V4.json** file berikut menunjukkan lokasi perubahan:

   ```
           {
               "slotType": "FlowerTypes", 
               "name": "FlowerType", 
               "slotConstraint": "Required", 
               "valueElicitationPrompt": {
                   "maxAttempts": 2, 
                   "messages": [
                       {
                           "content": "What type of flowers?", 
                           "contentType": "PlainText"
                       }
                   ]
               }, 
               "priority": 1, 
               "slotTypeVersion": "version", 
               "sampleUtterances": []
           },
   ```

1. Di AWS CLI, simpan revisi maksud:

   ```
   aws lex-models put-intent \
       --name OrderFlowers \
       --cli-input-json file://OrderFlowers_V4.json
   ```

1. Dapatkan checksum dari revisi terbaru dari intent:

   ```
   aws lex-models get-intent \
       --region region \
       --name OrderFlowers \
       --intent-version "\$LATEST" > OrderFlowers_V4a.json
   ```

   Fragmen respons berikut menunjukkan checksum maksud. Catat ini untuk langkah selanjutnya.

   ```
       "name": "OrderFlowers", 
       "checksum": "checksum", 
       "version": "$LATEST",
   ```

1. Publikasikan versi baru dari intent: 

   ```
   aws lex-models create-intent-version \
       --region region \
       --name OrderFlowers \
       --checksum "checksum"
   ```

   Fragmen respons berikut menunjukkan versi baru dari intent. Catat nomor versi untuk langkah selanjutnya.

   ```
       "name": "OrderFlowers", 
       "checksum": "checksum", 
       "version": "version",
   ```

## Langkah Selanjutnya
<a name="gs-cli-publish-3"></a>

[Langkah 3: Publikasikan Bot (AWS CLI)](gs-cli-publish-bot.md)

# Langkah 3: Publikasikan Bot (AWS CLI)
<a name="gs-cli-publish-bot"></a>

Setelah Anda mempublikasikan semua jenis slot dan maksud yang digunakan oleh bot Anda, Anda dapat mempublikasikan bot.

Perbarui `OrderFlowersBot` bot untuk menggunakan `OrderFlowers` maksud yang Anda perbarui di langkah sebelumnya. Kemudian, publikasikan versi baru `OrderFlowersBot` bot.

**catatan**  
 AWS CLI Contoh berikut diformat untuk Unix, Linux, dan macOS. Untuk Windows, ubah `"\$LATEST"` ke `$LATEST` dan ganti karakter kelanjutan garis miring terbalik (\$1) di akhir setiap baris dengan tanda sisipan (^).

**Untuk mempublikasikan versi bot (AWS CLI)**

1. Di AWS CLI, dapatkan `$LATEST` versi `OrderFlowersBot` bot dan simpan ke file:

   ```
   aws lex-models get-bot \
       --region region \
       --name OrderFlowersBot \
       --version-or-alias "\$LATEST" > OrderFlowersBot_V4.json
   ```

1. Dalam editor teks, buka **OrderFlowersBot\$1V4.json** file. Hapus`createdDate`,`lastUpdatedDate`, `status` dan `version` bidang. Temukan `OrderFlowers` intent dan ubah versi ke nomor versi yang Anda rekam di langkah sebelumnya. Fragmen berikut **OrderFlowersBot\$1V4.json** menunjukkan lokasi perubahan.

   ```
       "intents": [
           {
               "intentVersion": "version", 
               "intentName": "OrderFlowers"
           }
   ```

1. Di AWS CLI, simpan revisi baru bot. Catat nomor versi yang dikembalikan oleh panggilan ke`put-bot`.

   ```
   aws lex-models put-bot \
       --name OrderFlowersBot \
       --cli-input-json file://OrderFlowersBot_V4.json
   ```

1. Dapatkan checksum dari revisi terbaru bot. Gunakan nomor versi yang dikembalikan pada langkah 3.

   ```
   aws lex-models get-bot \
       --region region \
       --version-or-alias version \
       --name OrderFlowersBot > OrderFlowersBot_V4a.json
   ```

   Fragmen respons berikut menunjukkan checksum bot. Catat ini untuk langkah selanjutnya.

   ```
       "name": "OrderFlowersBot", 
       "locale": "en-US", 
       "checksum": "checksum",
   ```

1. Publikasikan versi baru bot:

   ```
   aws lex-models create-bot-version \
       --region region \
       --name OrderFlowersBot \
       --checksum "checksum"
   ```

   Fragmen respons berikut menunjukkan versi baru bot.

   ```
       "checksum": "checksum", 
       "abortStatement": {
           ...
       }, 
       "version": "1",
       "lastUpdatedDate": timestamp,
   ```

## Langkah Selanjutnya
<a name="gs-cli-next-exercise-5"></a>

[Latihan 5: Buat Alias ()AWS CLI](gs-cli-create-alias.md)

# Latihan 5: Buat Alias ()AWS CLI
<a name="gs-cli-create-alias"></a>

Alias adalah pointer ke versi bot tertentu. Dengan alias Anda dapat dengan mudah memperbarui versi yang digunakan aplikasi klien Anda. Untuk informasi selengkapnya, lihat [Pembuatan Versi dan Alias](versioning-aliases.md) .Untuk menjalankan perintah dalam latihan ini, Anda perlu mengetahui wilayah tempat perintah akan dijalankan. Untuk daftar wilayah, lihat[Kuota Bangunan Model](gl-limits.md#gl-limits-model-building).

**Untuk membuat alias ()AWS CLI**

1. Di AWS CLI, dapatkan versi `OrderFlowersBot` bot yang Anda buat[Latihan 4: Publikasikan Versi (AWS CLI)](gs-cli-publish.md). 

   ```
   aws lex-models get-bot \
       --region region \
       --name OrderFlowersBot \
       --version-or-alias version > OrderFlowersBot_V5.json
   ```

1. Dalam editor teks, buka**OrderFlowersBot\$1v5.json**. Temukan dan catat nomor versi.

1. Di AWS CLI, buat alias bot:

   ```
   aws lex-models put-bot-alias  \
       --region region \
       --name PROD \
       --bot-name OrderFlowersBot \
       --bot-version version
   ```

   Berikut ini adalah tanggapan dari server:

   ```
   {
       "name": "PROD",
       "createdDate": timestamp,
       "checksum": "checksum",
       "lastUpdatedDate": timestamp,
       "botName": "OrderFlowersBot",
       "botVersion": "1"
   }}
   ```

## Langkah Selanjutnya
<a name="gs-cli-next-exercise-6"></a>

[Latihan 6: Bersihkan (AWS CLI)](gs-cli-clean-up.md)

# Latihan 6: Bersihkan (AWS CLI)
<a name="gs-cli-clean-up"></a>

Hapus sumber daya yang Anda buat dan bersihkan akun Anda.

Anda hanya dapat menghapus sumber daya yang tidak digunakan. Secara umum, Anda harus menghapus sumber daya dalam urutan berikut.

1. Hapus alias untuk membebaskan sumber daya bot.

1. Hapus bot untuk membebaskan sumber daya intent.

1. Hapus maksud untuk membebaskan sumber daya jenis slot.

1. Hapus jenis slot.

Untuk menjalankan perintah dalam latihan ini, Anda perlu mengetahui wilayah di mana perintah akan dijalankan. Untuk daftar wilayah, lihat[Kuota Bangunan Model](gl-limits.md#gl-limits-model-building).

**Untuk membersihkan akun Anda (AWS CLI)**

1. Di AWS CLI baris perintah, hapus alias:

   ```
   aws lex-models delete-bot-alias \
       --region region \
       --name PROD \
       --bot-name OrderFlowersBot
   ```

1. Di AWS CLI baris perintah, hapus bot:

   ```
   aws lex-models delete-bot \
       --region region \
       --name OrderFlowersBot
   ```

1. Di AWS CLI baris perintah, hapus intent:

   ```
   aws lex-models delete-intent \
       --region region \
       --name OrderFlowers
   ```

1. Dari baris AWS CLI perintah, hapus jenis slot:

   ```
   aws lex-models delete-slot-type \
       --region region \
       --name FlowerTypes
   ```

Anda telah menghapus semua sumber daya yang Anda buat dan membersihkan akun Anda.