

支援終止通知：2025 年 9 月 15 日， AWS 將停止對 Amazon Lex V1 的支援。2025 年 9 月 15 日之後，您將無法再存取 Amazon Lex V1 主控台或 Amazon Lex V1 資源。如果您使用的是 Amazon Lex V2，請改參閱 [Amazon Lex V2 指南](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 練習 4：發佈版本 (AWS CLI)
<a name="gs-cli-publish"></a>

現在為您在練習 1 中建立的機器人建立一個版本。* 版本*是機器人的的快照。版本建立後，便無法變更。您唯一可以更新的版本是 `$LATEST` 版本。如需有關版本的詳細資訊，請參閱[版本控制與別名](versioning-aliases.md)。

您必須先發佈機器人所用的意圖後，才能發佈機器人的版本。同樣地，您必須發佈該些意圖所參考的槽類型。一般而言，發佈機器人的版本需執行下列動作：

1. 使用 [CreateSlotTypeVersion](API_CreateSlotTypeVersion.md) 操作發佈槽類型的版本。

1. 使用 [CreateIntentVersion](API_CreateIntentVersion.md) 操作發佈意圖的版本。

1. 使用 [CreateBotVersion](API_CreateBotVersion.md) 操作發佈機器人的版本。

若要執行本練習中的命令，您必須知道要執行命令的區域。如需區域的列表，請參閱[模型建置配額](gl-limits.md#gl-limits-model-building)。

**Topics**
+ [步驟 1：發佈槽類型 (AWS CLI)](gs-cli-publish-slot-type.md)
+ [步驟 2：發佈意圖 (AWS CLI)](gs-cli-publish-intent.md)
+ [步驟 3：發佈機器人 (AWS CLI)](gs-cli-publish-bot.md)

# 步驟 1：發佈槽類型 (AWS CLI)
<a name="gs-cli-publish-slot-type"></a>

您必須先發佈槽類型的版本之後，才能發佈使用槽類型之任何意圖的版本。在這個範例中，您發佈 `FlowerTypes` 槽類型。

**注意**  
下列 AWS CLI 範例已針對 Unix、Linux 和 macOS 格式化。用於 Windows 時，請將 `"\$LATEST"` 變更為 `$LATEST`，並以插入號 (^) 取代每一行結尾處的反斜線 (\$1) 接續字元。

**發佈槽類型 (AWS CLI)**

1. 在 中 AWS CLI，取得最新版的槽類型：

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

   Amazon Lex 的回應如下。記錄 `$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. 發佈槽類型的版本。使用您在前一步驟中記錄的檢查總和。

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

   Amazon Lex 的回應如下。記錄版本編號以用於下個步驟。

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

## 後續步驟
<a name="gs-cli-publish-2"></a>

[步驟 2：發佈意圖 (AWS CLI)](gs-cli-publish-intent.md)

# 步驟 2：發佈意圖 (AWS CLI)
<a name="gs-cli-publish-intent"></a>

您必須先發佈意圖所參考的所有槽類型之後，才能發佈意圖。槽類型必須是已編號的版本，而非 `$LATEST` 版本。

首先，更新 `OrderFlowers` 意圖以使用您在前面的步驟中發佈的 `FlowerTypes` 槽類型版本。然後，發佈 `OrderFlowers` 意圖的新版本。

**注意**  
下列 AWS CLI 範例已針對 Unix、Linux 和 macOS 格式化。用於 Windows 時，請將 `"\$LATEST"` 變更為 `$LATEST`，並以插入號 (^) 取代每一行結尾處的反斜線 (\$1) 接續字元。

**發佈意圖的版本 (AWS CLI)**

1. 在 中 AWS CLI，取得`OrderFlowers`意圖的`$LATEST`版本，並將其儲存至 檔案：

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

1. 在文字編輯器中，開啟 **OrderFlowers\$1V4.json** 檔案。刪除 `createdDate`、`lastUpdatedDate` 和 `version` 欄位。找出 `FlowerTypes` 槽類型並將版本變更為您在前面的步驟中記錄的版本編號。以下 **OrderFlowers\$1V4.json** 檔案片段顯示變更的位置：

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

1. 在 中 AWS CLI，儲存意圖的修訂：

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

1. 取得意圖最新修訂版的檢查總和：

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

   以下回應片段顯示意圖的的檢查總和。請將此記錄下來以用於下個步驟。

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

1. 發佈意圖的新版本：

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

   以下回應片段顯示意圖的新版本。記錄版本編號以用於下個步驟。

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

## 後續步驟
<a name="gs-cli-publish-3"></a>

[步驟 3：發佈機器人 (AWS CLI)](gs-cli-publish-bot.md)

# 步驟 3：發佈機器人 (AWS CLI)
<a name="gs-cli-publish-bot"></a>

在發佈機器人使用的所有槽類型和意圖之後，您就可以發佈機器人了。

更新 `OrderFlowersBot` 機器人以使用您在前面的步驟中所更新的 `OrderFlowers` 意圖。然後，發佈 `OrderFlowersBot` 機器人的新版本。

**注意**  
下列 AWS CLI 範例已針對 Unix、Linux 和 macOS 格式化。用於 Windows 時，請將 `"\$LATEST"` 變更為 `$LATEST`，並以插入號 (^) 取代每一行結尾處的反斜線 (\$1) 接續字元。

**發佈機器人的版本 (AWS CLI)**

1. 在 中 AWS CLI，取得`OrderFlowersBot`機器人的`$LATEST`版本，並將其儲存至 檔案：

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

1. 在文字編輯器中，開啟 **OrderFlowersBot\$1V4.json** 檔案。刪除 `createdDate`、`lastUpdatedDate`、`status` 和 `version` 欄位。找出 `OrderFlowers` 意圖並將版本變更為您在前面的步驟中記錄的版本編號。以下 **OrderFlowersBot\$1V4.json** 片段顯示變更的位置。

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

1. 在 中 AWS CLI，儲存機器人的新修訂版。記下呼叫 `put-bot` 傳回的版本號碼。

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

1. 取得機器人最新修訂版的檢查總和。使用步驟 3 傳回的版本號碼。

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

   以下回應片段顯示機器人的檢查總和。請將此記錄下來以用於下個步驟。

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

1. 發佈機器人的新版本：

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

   以下回應片段顯示機器人的新版本。

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

## 後續步驟
<a name="gs-cli-next-exercise-5"></a>

[練習 5：建立別名 (AWS CLI)](gs-cli-create-alias.md)