

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

# 什麼是變更類型？
<a name="understanding-cts"></a>

變更類型是指 AWS Managed Services (AMS) 變更請求 (RFC) 執行並包含變更動作本身的動作，以及變更類型 – 手動與自動。AMS 有大量變更類型，其他 Amazon Web 服務不會使用。您可以在提交變更請求 (RFC) 以部署、管理或存取 資源時使用這些變更類型。

**Topics**
+ [自動化和手動 CTs](ug-automated-or-manual.md)
+ [CT 核准要求](constrained-unconstrained-ctis.md)
+ [變更類型版本](ct-versions.md)
+ [建立變更類型](ct-creates.md)
+ [更新變更類型](ct-updates.md)
+ [僅限內部的變更類型](ct-internals.md)
+ [變更類型結構描述](ct-schemas.md)
+ [管理變更類型的許可](ct-permissions.md)
+ [從變更類型編輯敏感資訊](ct-redaction.md)
+ [使用查詢選項尋找變更類型](ug-find-ct-ex-section.md)

# 自動化和手動 CTs
<a name="ug-automated-or-manual"></a>

變更類型的限制條件是它們是自動還是手動，這是變更類型`AutomationStatusId`屬性，在 AMS 主控台中稱為**執行模式**。

自動化變更類型具有預期的結果和執行時間，並且通常在一小時內透過 AMS 自動化系統執行 （這主要取決於 CT 正在佈建的資源）。手動變更類型並不常見，但會受到不同的處理，因為它們需要 AMS 運算子先對 RFC 採取行動，才能執行。有時這表示與 RFC 提交者通訊，因此手動變更類型需要不同的時間長度才能完成。

對於所有排程RFCs，未指定的結束時間會寫入為指定的時間`RequestedStartTime`加上所提交變更類型的`ExpectedExecutionDurationInMinutes`屬性。例如，如果 `ExpectedExecutionDurationInMinutes`是 "60" （分鐘），且指定的 `RequestedStartTime`是 `2016-12-05T14:20:00Z`(2016 年 12 月 5 日上午 4：20)，則實際結束時間將設定為 2016 年 12 月 5 日上午 5：20。若要尋找`ExpectedExecutionDurationInMinutes`特定變更類型的 ，請執行此命令：

```
aws amscm --profile saml get-change-type-version --change-type-id CHANGE_TYPE_ID --query "ChangeTypeVersion.{ExpectedDuration:ExpectedExecutionDurationInMinutes}"
```

**注意**  
**執行模式** = 手動RFCs 必須在主控台中設定為在未來至少 24 小時執行。

**注意**  
使用手動 CTs時，AMS 建議您使用 ASAP **排程選項 **（在主控台中選擇 **ASAP**，在 API/CLI 中保留開始和結束時間空白），因為這些 CTs 需要 AMS 運算子來檢查 RFC，並在核准和執行之前與您通訊。如果您排程這些 RFCs，請務必允許至少 24 小時。如果未在排定的開始時間之前進行核准，RFC 會自動遭到拒絕。

AMS 旨在四小時內回應手動 CT，並會盡快對應，但實際執行 RFC 可能需要更長的時間。

如需手動且需要 AMS 檢閱CTs 清單，請參閱 主控台**開發人員資源**頁面上的變更類型 CSV 檔案。

**YouTube 影片**：[如何尋找 AMS RFCs的自動變更類型？](https://www.youtube.com/watch?v=sOzDuCCOduI&list=PLhr1KZpdzukc_VXASRqOUSM5AJgtHat6-&index=2&t=1s)

若要在 AMS 主控台中尋找 CT 的**執行模式**，您必須使用**瀏覽變更類型**搜尋選項。結果會顯示相符變更類型或變更類型的執行模式。

若要使用 AMS CLI 尋找`AutomationStatus`特定變更類型的 ，請執行此命令：

```
aws amscm --profile saml get-change-type-version --change-type-id CHANGE_TYPE_ID --query "ChangeTypeVersion.{AutomationStatus:AutomationStatus.Name}"
```

您也可以在 [AMS 變更類型參考中查詢變更類型，該參考](https://docs.aws.amazon.com/managedservices/latest/ctref/index.html)提供有關所有 AMS 變更類型的資訊。

**注意**  
AMS API/CLI 目前不是 AWS API/CLI 的一部分。若要存取 AMS API/CLI，您可以透過 AMS 主控台下載 AMS 開發套件。

# CT 核准要求
<a name="constrained-unconstrained-ctis"></a>

AMS CTs一律有兩個核准條件：**AwsApprovalId** 和 **CustomerApprovalId**，指出 RFC 是否需要 AMS 或您或任何人核准執行。

核准條件與執行模式有些相關；如需詳細資訊，請參閱 [自動化和手動 CTs](ug-automated-or-manual.md)。

若要了解 CT 的核准條件，您可以查看 [AMS 變更類型參考](https://docs.aws.amazon.com/managedservices/latest/ctref/index.html)，或執行 [GetChangeTypeVersion](https://docs.aws.amazon.com/managedservices/latest/ApiReference-cm/API_GetChangeTypeVersion.html)。兩者也會為您提供 CT `AutomationStatusId`或**執行模式**。

您可以使用 AMS 主控台或下列命令來核准 RFCs：

```
aws amscm approve-rfc --rfc-id RFC_ID
```


**CT 核准條件**  

| 如果 CT 核准條件為 | 它需要來自 的核准 | 及 | 
| --- | --- | --- | 
| `AwsApprovalId: Required` | AMS 變更類型系統、 | 無需採取任何動作。此條件是自動化 CTs的典型條件。 | 
| `AwsApprovalId: NotRequiredIfSubmitter` | 如果提交的 RFC 是針對其所提交的帳戶，則 AMS 變更類型系統不會有其他人， | 無需採取任何動作。此條件適用於手動 CTs因為 AMS 運算子一律會檢閱它們。 | 
| `CustomerApprovalId: NotRequired` | AMS 變更類型系統、 | 如果 RFC 通過語法和參數檢查，則會自動核准。 | 
| `CustomerApprovalId: Required` | AMS 變更類型系統與您， | 系統會傳送通知給您，您必須透過回應通知或執行 [ApproveRfc](https://docs.aws.amazon.com/managedservices/latest/ApiReference-cm/API_ApproveRfc.html) 操作來明確核准 RFC。 | 
| `CustomerApprovalId: NotRequiredIfSubmitter` | 如果您提交 RFC，則 AMS 變更類型系統不會有其他人。 | 如果 RFC 通過語法和參數檢查，則會自動核准。 | 
| 緊急安全事件或修補程式 | AMS | 已自動核准並實作。 | 

# 變更類型版本
<a name="ct-versions"></a>

變更類型會進行版本控制，並在對變更類型進行主要更新時變更版本。

使用 AMS 主控台選取變更類型之後，您可以選擇開啟**其他組態**區域並選取變更類型版本。您也可以在 API/CLI 命令列指定變更類型版本。您可能會因為各種原因而想要這樣做，包括：
+ 您知道您想要的**更新**變更類型版本必須符合您用來建立現在要更新之資源的**建立**變更類型版本。例如，您可能有一個使用 ELB 建立變更類型版本 1 建立的 Elastic Load Balancer (ELB) 執行個體。若要更新它，請選擇 ELB 更新第 1 版。
+ 您想要使用的變更類型版本，其中包含與最新變更類型不同的選項。我們不建議這麼做，因為 AMS 更新變更類型主要基於安全考量，建議您一律選擇最新版本。

# 建立變更類型
<a name="ct-creates"></a>

建立變更類型會比對version-to-version與更新變更類型。也就是說，您用來佈建資源的變更類型版本必須符合稍後用來修改該資源的更新變更類型版本。例如，如果您使用建立 S3 儲存貯體變更類型 2.0 版建立 S3 儲存貯體，且稍後想要提交 RFC 來修改該 S3 儲存貯體，則您也必須使用更新 S3 儲存貯體變更類型 2.0 版，即使更新 S3 儲存貯體變更類型具有 3.0 版。

我們建議您保留在佈建具有建立變更類型的資源時所使用的變更類型 ID 和版本記錄，以防您稍後想要使用更新變更類型進行修改。

# 更新變更類型
<a name="ct-updates"></a>

AMS 提供更新變更類型，以更新使用建立變更類型建立的資源。更新變更類型必須與最初用於佈建資源version-to-version的建立變更類型相符。

建議您保留您在佈建資源時所使用的變更類型 ID 和版本記錄，以便輕鬆更新。

**YouTube 影片**：[如何使用更新 CTs來變更 AWS Managed Services (AMS) 帳戶中的資源？](https://www.youtube.com/watch?v=dqb31yaAXhc&list=PLhr1KZpdzukc_VXASRqOUSM5AJgtHat6-&index=8&t=30s)

# 僅限內部的變更類型
<a name="ct-internals"></a>

您可以查看僅供內部使用的變更類型。這是為了讓您知道 AMS 可以或會採取哪些動作。如果您想要有僅供內部使用的變更類型，請提交服務請求。

例如，有一個管理 \$1 監控和通知 \$1 CloudWatch 警示抑制 \$1 更新僅限內部的 CT。AMS 會使用它來部署基礎設施更新 （例如修補），以關閉更新可能錯誤觸發的警示通知。提交此 CT 時，您會在 RFC 清單中注意到 CT 的 RFC。在 RFC 中部署的任何僅限內部 CT 都會顯示在 RFC 清單中。

# 變更類型結構描述
<a name="ct-schemas"></a>

所有變更類型都會為資源的建立、修改或存取中的輸入提供 JSON 結構描述。結構描述提供參數及其描述，供您建立變更請求 (RFC)。

成功執行 RFC 會產生執行輸出。對於佈建 RFCs，執行輸出包含代表 CloudFormation 中堆疊的 "stack\$1id"，並且可以在 CloudFormation 主控台中搜尋。執行輸出有時包含所建立執行個體 ID 的輸出，該 ID 可用於在對應的 AWS 主控台中搜尋執行個體。例如，建立 ELB CT 執行輸出包含可在 CloudFormation 中搜尋的 "stack\$1id"，並輸出可在 Elastic Load Balancing 的 Amazon EC2 主控台中搜尋的 key=ELB value=<stack-xxxx>。

讓我們檢查 CT 結構描述。這是 CodeDeploy Application Create 的結構描述，這是一個相當小的結構描述。有些結構描述的區域非常大`Parameter`。


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/managedservices/latest/onboardingguide/ct-schemas.html)

**注意**  
此結構描述最多允許七個標籤；不過，EC2、EFS、RDS 和多層建立結構描述最多允許 50 個標籤。

# 管理變更類型的許可
<a name="ct-permissions"></a>

您可以使用自訂政策來限制哪些變更類型 CTs) 可供不同的群組或使用者使用。

若要進一步了解如何執行此作業，請參閱 AMS 使用者指南一節[設定許可](https://docs.aws.amazon.com/managedservices/latest/userguide/setting-permissions.html)。

# 從變更類型編輯敏感資訊
<a name="ct-redaction"></a>

AMS 變更類型結構描述提供參數屬性，`"metadata":"ams:sensitive":"true"`用於包含敏感資訊的參數，例如密碼。設定此屬性時，提供的輸入會隱藏。請注意，您無法設定此參數屬性；不過，如果您使用 AMS 來建立變更類型，並具有您想要在輸入時隱藏的參數，您可以請求此參數。

# 使用查詢選項尋找變更類型
<a name="ug-find-ct-ex-section"></a>

此範例示範如何使用 AMS 主控台來尋找您要提交之 RFC 的適當變更類型。

您可以使用 主控台或 API/CLI 來尋找變更類型 ID (CT) 或版本。有兩種方法：搜尋或選擇分類。對於這兩種選擇類型，您可以選擇**最常使用**、**最近使用**或**按字母順序**排序搜尋。

**YouTube 影片**：[如何使用 AWS Managed Services CLI 建立 RFC，以及在哪裡可以找到 CT 結構描述？](https://www.youtube.com/watch?v=IluDFwnJJFU&list=PLhr1KZpdzukc_VXASRqOUSM5AJgtHat6-&index=3&t=150s) 

在 AMS 主控台的 **RFCs** -> **建立 RFC** 頁面上：
+ 選取**依變更類型瀏覽** （預設） 時：
  + 使用**快速建立**區域從 AMS 最熱門CTs 中選取。按一下標籤，隨即開啟**執行 RFC** 頁面，並自動為您填入**主旨**選項。視需要完成其餘選項，然後按一下**執行**以提交 RFC。
  + 或者，向下捲動至**所有變更類型**區域，並開始在選項方塊中輸入 CT 名稱，您不需要具有確切或完整的變更類型名稱。您也可以輸入相關字詞，依變更類型 ID、分類或執行模式 （自動或手動） 搜尋 CT。

    選取預設**卡**檢視後，相符的 CT 卡會在您輸入時顯示，選取卡片並按一下**建立 RFC**。選取**資料表**檢視後，選擇相關的 CT，然後按一下**建立 RFC**。這兩種方法都會開啟**執行 RFC** 頁面。
+ 或者，若要探索變更類型選擇，請按一下頁面頂端的**依類別選擇**，以開啟一系列的下拉式清單選項方塊。
+ 選擇**類別**、**子類別**、**項目**和**操作**。該變更類型的資訊方塊會顯示頁面底部的面板。
+ 當您準備好時，請按 **Enter**，並顯示相符的變更類型清單。
+ 從清單中選擇變更類型。該變更類型的資訊方塊會出現在頁面底部。
+ 在您擁有正確的變更類型之後，請選擇**建立 RFC**。
**注意**  
必須安裝 AMS CLI，這些命令才能運作。若要安裝 AMS API 或 CLI，請前往 AMS 主控台**開發人員資源**頁面。如需 AMS CM API 或 AMS SKMS API 的參考資料，請參閱《 使用者指南》中的 AMS 資訊資源一節。您可能需要新增身分驗證`--profile`選項，例如 `aws amsskms ams-cli-command --profile SAML`。您可能還需要新增 `--region`選項，因為所有 AMS 命令都用盡 us-east-1；例如 `aws amscm ams-cli-command --region=us-east-1`。
**注意**  
AMS API/CLI (amscm 和 amsskms) 端點位於 AWS N. Virginia 區域 `us-east-1`。根據身分驗證的設定方式，以及您的帳戶和資源所在的 AWS 區域，您可能需要在發出命令`--region us-east-1`時新增 。如果這是您的身分驗證方法`--profile saml`，您可能還需要新增 。

若要使用 AMS CM API （請參閱 [ListChangeTypeClassificationSummaries](https://docs.aws.amazon.com/managedservices/latest/ApiReference-cm/API_ListChangeTypeClassificationSummaries.html)) 或 CLI 搜尋變更類型：

您可以使用篩選條件或查詢來搜尋。ListChangeTypeClassificationSummaries 操作具有 `Category`、`Item`、 `Subcategory`和 的[篩選條件](https://docs.aws.amazon.com/managedservices/latest/ApiReference-cm/API_ListChangeTypeClassificationSummaries.html#amscm-ListChangeTypeClassificationSummaries-request-Filters)選項`Operation`，但值必須完全符合現有的值。若要在使用 CLI 時獲得更靈活的結果，您可以使用 `--query`選項。


**使用 AMS CM API/CLI 變更類型篩選**  
<a name="ct-filtering-table"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/managedservices/latest/onboardingguide/ug-find-ct-ex-section.html)

1. 以下是列出變更類型分類的一些範例：

   下列命令會列出所有變更類型類別。

   ```
   aws amscm list-change-type-categories
   ```

   下列命令會列出屬於指定類別的子類別。

   ```
   aws amscm list-change-type-subcategories --category CATEGORY
   ```

   下列命令會列出屬於指定類別和子類別的項目。

   ```
   aws amscm list-change-type-items --category CATEGORY --subcategory SUBCATEGORY
   ```

1. 以下是使用 CLI 查詢搜尋變更類型的一些範例：

   下列命令會搜尋項目名稱中包含 "S3" 的 CT 分類摘要，並以資料表形式建立類別、子類別、項目、操作和變更類型 ID 的輸出。

   ```
   aws amscm list-change-type-classification-summaries --query "ChangeTypeClassificationSummaries [?contains(Item, 'S3')].[Category,Subcategory,Item,Operation,ChangeTypeId]" --output table
   ```

   ```
   +---------------------------------------------------------------+
   |               ListChangeTypeClassificationSummaries           |
   +----------+-------------------------+--+------+----------------+
   |Deployment|Advanced Stack Components|S3|Create|ct-1a68ck03fn98r|
   +----------+-------------------------+--+------+----------------+
   ```

1. 然後，您可以使用變更類型 ID 來取得 CT 結構描述並檢查參數。下列命令會將結構描述輸出至名為 CreateS3Params.schema.json.

   ```
   aws amscm get-change-type-version --change-type-id "ct-1a68ck03fn98r" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateS3Params.schema.json
   ```

   如需有關使用 CLI 查詢的資訊，請參閱[如何使用 --query Option 篩選輸出](https://docs.aws.amazon.com/cli/latest/userguide/controlling-output.html#controlling-output-filter)和查詢語言參考 [JMESPath Specification](http://jmespath.org/specification.html)。

1. 在您擁有變更類型 ID 之後，建議您驗證變更類型的版本，以確保它是最新版本。使用此命令來尋找指定變更類型的版本：

   ```
   aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value=CHANGE_TYPE_ID
   ```

   若要尋找`AutomationStatus`特定變更類型的 ，請執行此命令：

   ```
   aws amscm --profile saml get-change-type-version --change-type-id CHANGE_TYPE_ID --query "ChangeTypeVersion.{AutomationStatus:AutomationStatus.Name}"
   ```

   若要尋找`ExpectedExecutionDurationInMinutes`特定變更類型的 ，請執行此命令：

   ```
   aws amscm --profile saml get-change-type-version --change-type-id ct-14027q0sjyt1h --query "ChangeTypeVersion.{ExpectedDuration:ExpectedExecutionDurationInMinutes}"
   ```