

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

# 使用佈建變更類型 CTs)
<a name="deploy-new-aog"></a>

AMS 負責您的受管基礎設施，若要進行變更，您必須提交具有正確 CT 分類 （類別、子類別、項目和操作） 的 RFC。本節說明如何尋找 CTs、判斷任何 是否適合您的需求，以及在沒有 CT 的情況下請求新的 CT。

## 查看現有的 CT 是否符合您的需求
<a name="ct-check-aog"></a>

確定要使用 AMS 部署的內容後，下一步是研究現有的 CTs和 CloudFormation 範本，以查看解決方案是否已存在。

建立 RFC 時，您必須指定 CT。您可以使用 AWS 管理主控台 或 AMS API/CLI。接下來將說明使用兩者的範例。

您可以使用 主控台或 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>
<table>
<thead>
  <tr><th>屬性</th><th>有效值</th><th>有效/預設條件</th><th>備註</th></tr>
</thead>
<tbody>
  <tr><td>ChangeTypeId</td><td>代表 ChangeTypeId 的任何字串 （例如：ct-abc123xyz7890)</td><td>等於</td><td>如需變更類型 IDs，請參閱[變更類型參考](https://docs.aws.amazon.com/managedservices/latest/ctref/index.html)。<br />如需變更類型 IDs，請參閱尋找變更類型或 CSIO。</td></tr>
  <tr><td>類別</td><td rowspan="4">任何自由格式文字</td><td rowspan="4">包含</td><td rowspan="4">不支援每個個別欄位中的規則運算式。不區分大小寫的搜尋</td></tr>
  <tr><td>Subcategory</td></tr>
  <tr><td>項目</td></tr>
  <tr><td>作業</td></tr>
</tbody>
</table>


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

一旦找到您認為適當的 CT，請查看與其相關聯的執行參數 JSON 結構描述，以了解它是否解決您的使用案例。

使用此命令將 CT 結構描述輸出至以 CT 命名的 JSON 檔案；此範例會輸出建立 S3 儲存結構描述：

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

讓我們仔細看看此結構描述提供的內容。


**S3 儲存貯體建立結構描述**  


- ** 

```
{	
  "$schema": "http://json-schema.org/draft-04/schema#",
"name": "Create S3 Storage  
"description": "Use to create an Amazon Simple Storage Service stack.",
  "type": "object",
  "properties": {
    "Description": {
      "description": "The description of the stack.",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "VpcId": {
      "description": "ID of the VPC to create the S3 Bucket in, in the form vpc-a1b2c3d4e5f67890e.",
      "type": "string",
      "pattern": "^vpc-[a-z0-9]{17}$"
    },
    "StackTemplateId": {
      "description": "Required value: stm-s2b72beb000000000.",
      "type": "string",
      "enum": ["stm-s2b72beb000000000"]
    },
    "Name":{
      "description": "The name of the stack to create.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "Tags": {
      "description": "Up to seven tags (key/value pairs) for the stack.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "Key": {
            "type": "string",
            "minLength": 1,
            "maxLength": 127
          },
          "Value": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          }
        },
        "additionalProperties": false,
        "required": [
          "Key",
          "Value"
        ]
      },
      "minItems": 1,
      "maxItems": 7
    },
    "TimeoutInMinutes": {
      "description": "The amount of time, in minutes, to allow for creation of the stack.",
      "type": "number",
      "minimum": 0,
      "maximum": 60
    },
    "Parameters": {
      "description": "Specifications for the stack.",
      "type": "object",
      "properties": {
        "AccessControl": {
          "description": "The canned (predefined) access control list (ACL) to assign to the bucket.",
          "type": "string",
          "enum": [
            "Private",
            "PublicRead",
            "AuthenticatedRead",
            "BucketOwnerRead"
          ]
        },
        "BucketName": {
          "description": "A name for the bucket. The bucket name must contain only lowercase letters, numbers, periods (.), and hyphens (-).",
          "type": "string",
          "pattern": "^[a-z0-9]([-.a-z0-9]+)[a-z0-9]$",
          "minLength": 3,
          "maxLength": 63
        }
      },
      "additionalProperties": false,
      "required": [
        "AccessControl",
        "BucketName"
      ]
    }
  },
  "additionalProperties": false,
  "required": [
    "Description",
    "VpcId",
    "StackTemplateId",
    "Name",
    "TimeoutInMinutes",
    "Parameters"
  ]
}
``` **
  - 結構描述從 CT ("description") 開始，它會告訴您結構描述的用途。在此情況下， 會建立 S3 儲存堆疊。<br />接下來，您有可指定的必要和選用屬性。會提供預設屬性值。所需的屬性會列在結構描述的結尾。<br />在 StackTemplateId 區域中，您會看到此 CT 和結構描述有一個特定的堆疊範本，其 ID 是必要的屬性值。<br />結構描述可讓您為建立的堆疊加上標籤，以供內部簿記之用。此外，備份等某些選項需要 Key：backup 和 Value：true 的標籤。如需深入資訊，請參閱[標記您的 Amazon EC2 資源](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)。<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
  - CT JSON 結構描述的參數區段是您提供執行參數的位置。<br />對於此結構描述，只有 ACL 和 BucketName 是必要的執行參數。



## 請求新的 CT
<a name="request-new-ct-aog"></a>

檢查結構描述後，您可以決定它無法提供足夠的參數來建立您想要的部署。如果是這種情況，請檢查現有的 CloudFormation 範本，尋找更接近您想要的範本。一旦您知道所需的其他參數，請提交管理 \| 其他 \| 其他 \| 建立 CT。

**注意**  
所有其他 \| 其他建立和更新 CTs會收到 AMS 操作員的注意，他們將與您聯絡以討論新的 CT。

若要提交新 CT 的請求，請透過一般存取 AMS 主控台，[AWS 管理主控台](https://aws.amazon.com/console/)然後遵循下列步驟。

1. 在左側導覽中，按一下 **RFCs**。

   RFCs儀表板頁面隨即開啟。

1. 按一下 **Create (建立)**。

   建立變更請求頁面隨即開啟。

1. 在**類別**下拉式清單中選取管理，並為**子類別**和**項目**選取其他。針對**操作**，選擇建立。RFC 需要經過核准才能實作。

1. 輸入您想要 CT 的原因資訊，例如：根據現有的建立 S3 儲存體 CT，請求允許自訂 ACLs 的修改後建立 S3 儲存體 CT。這應該會產生新的 CT：部署 \| 進階堆疊元件 \| S3 儲存 \| 建立 S3 自訂 ACL。這個新的 CT 可能是公有的。

1. 請按 **Submit** (提交)。

   RFC 儀表板上會顯示您的 RFC。

## 測試新的 CT
<a name="test-new-ct-aog"></a>

一旦 AWS Managed Services 建立了該新的 CT，您就可以透過提交 RFC 進行測試。如果您使用 AMS 將新的 CT 預先核准，您可以直接遵循標準 RFC 提交，並留意結果 （如需提交 RFCs的詳細資訊，請參閱[建立和提交 RFC](https://docs.aws.amazon.com/managedservices/latest/userguide/create-rfcs.html))。如果新的 CT 未預先核准 （您希望確保在未明確核准的情況下永遠不會執行），則每次您想要執行時，都需要與 AMS 討論其實作。