

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

# AMS CloudFormation 擷取
<a name="ams-cfn-ingest"></a>

AMS AWS CloudFormation 擷取變更類型 (CT) 可讓您透過一些修改，使用現有的 CloudFormation 範本在 AMS 受管 VPC 中部署自訂堆疊。

**Topics**
+ [CloudFormation 擷取準則、最佳實務和限制](cfn-author-templates.md)
+ [CloudFormation 擷取：範例](cfn-ingest-examples.md)
+ [建立 CloudFormation 擷取堆疊](#ex-cfn-ingest-create-col)
+ [更新 CloudFormation 擷取堆疊](#ex-cfn-ingest-update-col)
+ [核准 CloudFormation 擷取堆疊變更集](#ex-cfn-ingest-approve-and-update-col)
+ [更新 CloudFormation 堆疊終止保護](#ex-cfn-term-pro-update-col)
+ [在 AMS 中使用 CFN 擷取或堆疊更新 CTs自動化 IAM 部署](cfn-ingest-iam-deploy.md)

AMS CloudFormation 擷取程序涉及下列各項：
+ 準備自訂 CloudFormation 範本並將其上傳至 S3 儲存貯體，或在建立 RFC 時內嵌範本。如果您使用具有預先簽章 URL 的 S3 儲存貯體；如需詳細資訊，請參閱[預先簽章](https://docs.aws.amazon.com/cli/latest/reference/s3/presign.html)。
+ 將 CloudFormation 擷取變更類型提交至 RFC 中的 AMS。如需 CFN 擷取變更類型演練，請參閱 [建立 CloudFormation 擷取堆疊](#ex-cfn-ingest-create-col)。如需 CFN 擷取範例，請參閱 [CloudFormation 擷取：範例](cfn-ingest-examples.md)。
+ 堆疊建立後，您可以更新它，並修復它上的偏離；此外，如果更新失敗，您可以明確核准和實作更新。本節說明所有這些程序。

  如需 CFN 偏離偵測的資訊，請參閱[新增 – CloudFormation 偏離偵測](https://aws.amazon.com/blogs/aws/new-cloudformation-drift-detection/)。

**注意**  
  
此變更類型現在具有 2.0 版。2.0 版是自動化的；不手動執行。這可讓 CT 執行速度更快。此版本推出兩個新參數：**CloudFormationTemplate**，可讓您將自訂 CloudFormation 範本貼入 RFC，而 **VpcId** 可讓您將 CloudFormation 擷取與 AMS 多帳戶登陸區域搭配使用。
1.0 版是手動變更類型。這表示 AMS 運算子必須先採取一些動作，變更類型才能成功結束。至少需要檢閱。此版本也需要 **CloudFormationTemplateS3Endpoint** 參數值為預先簽章的 URL。

## 建立 CloudFormation 擷取堆疊
<a name="ex-cfn-ingest-create-col"></a>

### 使用主控台建立 CloudFormation 擷取堆疊
<a name="cfn-ingest-create-con"></a>

![](http://docs.aws.amazon.com/zh_tw/managedservices/latest/appguide/images/guiCfnIngestCT.png)


**使用主控台建立 CloudFormation 擷取堆疊**

1. 導覽至**建立 RFC** 頁面：在 AMS 主控台的左側導覽窗格中，按一下 **RFCs**以開啟 RFCs清單頁面，然後按一下**建立 RFC**。

1. 在預設的**瀏覽變更類型檢視中選擇熱門的變更類型** (CT)，或在**依類別選擇**檢視中選擇 CT。
   + **依變更類型瀏覽**：您可以在**快速建立**區域中按一下熱門的 CT，以立即開啟**執行 RFC** 頁面。請注意，您無法透過快速建立選擇較舊的 CT 版本。

     若要排序 CTs，請使用**卡片**或**資料表**檢視中的所有**變更類型**區域。在任一檢視中，選取 CT，然後按一下**建立 RFC** 以開啟**執行 RFC** 頁面。如果適用，**建立較舊版本**選項會顯示在**建立 RFC** 按鈕旁。
   + **依類別選擇**：選取類別、子類別、項目和操作，如果適用，CT 詳細資訊方塊會開啟，其中包含**使用較舊版本建立**的選項。按一下**建立 RFC** 以開啟**執行 RFC** 頁面。

1. 在**執行 RFC** 頁面上，開啟 CT 名稱區域以查看 CT 詳細資訊方塊。需要**主旨** （如果您在**瀏覽變更類型**檢視中選擇 CT，則會為您填入）。開啟**其他組態**區域以新增 RFC 的相關資訊。

   在**執行組態**區域中，使用可用的下拉式清單或輸入必要參數的值。若要設定選用的執行參數，請開啟**其他組態**區域。

1. 完成後，請按一下**執行**。如果沒有錯誤，**RFC 成功建立**的頁面會顯示已提交的 RFC 詳細資訊，以及初始的**執行輸出**。

1. 開啟**執行參數**區域以查看您提交的組態。重新整理頁面以更新 RFC 執行狀態。或者，取消 RFC 或使用頁面頂端的選項建立 RFC 的副本。

### 使用 CLI 建立 CloudFormation 擷取堆疊
<a name="cfn-ingest-create-cli"></a>

**使用 CLI 建立 CloudFormation 擷取堆疊**

1. 使用內嵌建立 （您發出包含所有 RFC 和執行參數的`create-rfc`命令） 或範本建立 （您建立兩個 JSON 檔案，一個用於 RFC 參數，另一個用於執行參數），並使用兩個檔案作為輸入發出`create-rfc`命令。此處說明這兩種方法。

1. 使用傳回的 RFC ID 提交 RFC： `aws amscm submit-rfc --rfc-id {{ID}}`命令。

   監控 RFC： `aws amscm get-rfc --rfc-id {{ID}}`命令。

若要檢查變更類型版本，請使用下列命令：

```
aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value={{CT_ID}}
```
**注意**  
您可以將任何`CreateRfc`參數與任何 RFC 搭配使用，無論它們是否為變更類型結構描述的一部分。例如，若要在 RFC 狀態變更時取得通知，請將此行新增至請求的 `--notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}"` RFC 參數部分 （而非執行參數）。如需所有 CreateRfc 參數的清單，請參閱 [AMS 變更管理 API 參考](https://docs.aws.amazon.com/managedservices/latest/ApiReference-cm/API_CreateRfc.html)。

1. 準備用於建立堆疊的 CloudFormation 範本，並將其上傳至 S3 儲存貯體。如需重要詳細資訊，請參閱 [AWS CloudFormation 擷取準則、最佳實務和限制](https://docs.aws.amazon.com/managedservices/latest/appguide/cfn-author-templates.html)。

1. 建立 RFC 並將其提交至 AMS：

   1. 建立並儲存執行參數 JSON 檔案，包含您想要的 CloudFormation 範本參數。下列範例會將其命名為 CreateCfnParams.json.

     範例 Web 應用程式堆疊 CreateCfnParams.json 檔案：

     ```
     {
       "Name": "{{cfn-ingest}}",
       "Description": "{{CFNIngest Web Application Stack}}",
       "VpcId": "{{VPC_ID}}",
       "CloudFormationTemplateS3Endpoint": "{{$S3_URL}}",
       "TimeoutInMinutes": 120,
       "Tags": [
        {
         "Key":   "{{Enviroment Type}}"
         "Value": "{{Dev}}",
        },
        {
         "Key":   "{{Application}}"
         "Value": "{{PCS}}",
        }
       ],
       "Parameters": [
        {
         "Name": "{{Parameter-for-S3Bucket-Name}}",
         "Value":  "{{BUCKET-NAME}}"
        },
        {
         "Name": "{{Parameter-for-Image-Id}}",
         "Value":  "{{AMI-ID}}"
        }
       ],
     }
     ```

     範例 SNS 主題 CreateCfnParams.json 檔案：

     ```
     {
       "Name": "cfn-ingest",
       "Description": "{{CFNIngest Web Application Stack}}",
       "CloudFormationTemplateS3Endpoint": "{{$S3_URL}}",
       "Tags": [
         {"Key": "{{Enviroment Type}}", "Value": "{{Dev}}"}
       ],
       "Parameters": [
         {"Name": "{{TopicName}}", "Value": "{{MyTopic1}}"}
       ]
     }
     ```

1. 使用下列內容建立並儲存 RFC 參數 JSON 檔案。下列範例會將其命名為 CreateCfnRfc.json 檔案：

   ```
   {
      "ChangeTypeId": "ct-36cn2avfrrj9v",
      "ChangeTypeVersion": "2.0",
      "Title": "{{cfn-ingest}}"
   }
   ```

1. 建立 RFC，指定 CreateCfnRfc 檔案和 CreateCfnParams 檔案：

   ```
   aws amscm create-rfc --cli-input-json file://CreateCfnRfc.json  --execution-parameters file://CreateCfnParams.json
   ```

   您會在回應中收到新 RFC 的 ID，並使用它來提交和監控 RFC。在您提交之前，RFC 會保持在編輯狀態，不會啟動。

### 提示
<a name="ex-cfn-ingest-create-tip"></a>

**注意**  
此變更類型位於 2.0 版，且為自動化 （非手動執行）。這可讓 CT 執行更快速，而新的參數 **CloudFormationTemplate** 可讓您將自訂 CloudFormation 範本貼入 RFC。此外，在此版本中，如果您指定自己的安全群組，我們不會連接預設 AMS 安全群組。如果您未在請求中指定自己的安全群組，AMS 會連接 AMS 預設安全群組。在 CFN Ingest v1.0 中，無論您是否提供自己的安全群組，我們一律會附加 AMS 預設安全群組。  
AMS 已啟用 17 個 AMS 自我佈建服務，可用於此變更類型。如需支援資源的資訊，請參閱 [ CloudFormation 擷取堆疊：支援的資源](https://docs.aws.amazon.com/managedservices/latest/appguide/cfn-ingest-supp-services.html)。

**注意**  
2.0 版接受不是預先簽章 URL 的 S3 端點。  
如果您使用此舊版 CT，**CloudFormationTemplateS3Endpoint** 參數值必須是預先簽章的 URL。  
產生預先簽章 S3 儲存貯體 URL (Mac/Linux) 的範例命令：  

```
export S3_PRESIGNED_URL=$(aws s3 presign DASHDASHexpires-in 86400 s3://{{BUCKET_NAME}}/{{CFN_TEMPLATE}}.json)
```
產生預先簽章 S3 儲存貯體 URL (Windows) 的範例命令：  

```
for /f %i in ('aws s3 presign DASHDASHexpires-in 86400 s3://{{BUCKET_NAME}}/{{CFN_TEMPLATE}}.json') do set S3_PRESIGNED_URL=%i
```
另請參閱[為 Amazon S3 儲存貯體建立預先簽章的 URLs](https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/s3-example-presigned-urls.html)。

**注意**  
如果 S3 儲存貯體存在於 AMS 帳戶中，您必須使用此命令的 AMS 登入資料。例如，您可能需要在取得 AMS AWS Security Token Service (AWS STS) 登入資料`--profile saml`後附加 。

相關變更類型：[核准 CloudFormation 擷取堆疊變更集](#ex-cfn-ingest-approve-and-update-col)、 [更新 CloudFormation 擷取堆疊](#ex-cfn-ingest-update-col)

若要進一步了解 AWS CloudFormation，請參閱 [AWS Cloud Formation](https://aws.amazon.com/cloudformation/)。若要查看 CloudFormation 範本，請開啟 AWS CloudFormation [範本參考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-reference.html)。

### 驗證 CloudFormation 擷取
<a name="cfn-ingest-validation"></a>

範本經過驗證，以確保可在 AMS 帳戶中建立。如果通過驗證，則會更新為包含符合 AMS 所需的任何資源或組態。這包括新增 資源，例如 Amazon CloudWatch 警示，以允許 AMS Operations 監控堆疊。

如果以下任何一項成立，RFC 會遭到拒絕：
+ RFC JSON 語法不正確或不遵循指定的格式。
+ 提供的 S3 儲存貯體預先簽章 URL 無效。
+ 範本不是有效的 CloudFormation 語法。
+ 範本未針對所有參數值設定預設值。
+ 範本未通過 AMS 驗證。如需 AMS 驗證步驟，請參閱本主題稍後的資訊。

如果 CloudFormation 堆疊因為資源建立問題而無法建立，RFC 會失敗。

若要進一步了解 CFN 驗證和驗證程式，請參閱[範本驗證](https://docs.aws.amazon.com/managedservices/latest/appguide/cfn-author-templates.html)和 [CloudFormation 擷取堆疊：CFN 驗證程式範例](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-cfn-ingest-validator.html)。

## 更新 CloudFormation 擷取堆疊
<a name="ex-cfn-ingest-update-col"></a>

### 使用主控台更新 CloudFormation 擷取堆疊
<a name="cfn-ingest-update-con"></a>

![](http://docs.aws.amazon.com/zh_tw/managedservices/latest/appguide/images/guiCfnStackUpdateCT-v2.png)


**使用主控台更新 CloudFormation 擷取堆疊**

1. 導覽至**建立 RFC** 頁面：在 AMS 主控台的左側導覽窗格中，按一下 **RFCs**以開啟 RFCs清單頁面，然後按一下**建立 RFC**。

1. 在預設的**瀏覽變更類型檢視中選擇熱門的變更類型** (CT)，或在**依類別選擇**檢視中選擇 CT。
   + **依變更類型瀏覽**：您可以在**快速建立**區域中按一下熱門的 CT，以立即開啟**執行 RFC** 頁面。請注意，您無法透過快速建立選擇較舊的 CT 版本。

     若要排序 CTs，請使用**卡片**或**資料表**檢視中的所有**變更類型**區域。在任一檢視中，選取 CT，然後按一下**建立 RFC** 以開啟**執行 RFC** 頁面。如果適用，**建立較舊版本**選項會顯示在**建立 RFC** 按鈕旁。
   + **依類別選擇**：選取類別、子類別、項目和操作，如果適用，CT 詳細資訊方塊會開啟，其中包含**使用較舊版本建立**的選項。按一下**建立 RFC** 以開啟**執行 RFC** 頁面。

1. 在**執行 RFC** 頁面上，開啟 CT 名稱區域以查看 CT 詳細資訊方塊。需要**主旨** （如果您在**瀏覽變更類型**檢視中選擇 CT，則會為您填入）。開啟**其他組態**區域以新增 RFC 的相關資訊。

   在**執行組態**區域中，使用可用的下拉式清單或輸入必要參數的值。若要設定選用的執行參數，請開啟**其他組態**區域。

1. 完成後，請按一下**執行**。如果沒有錯誤，**RFC 成功建立**的頁面會顯示已提交的 RFC 詳細資訊，以及初始的**執行輸出**。

1. 開啟**執行參數**區域以查看您提交的組態。重新整理頁面以更新 RFC 執行狀態。或者，取消 RFC 或使用頁面頂端的選項建立 RFC 的副本。

### 使用 CLI 更新 CloudFormation 擷取堆疊
<a name="cfn-ingest-update-cli"></a>

**使用 CLI 更新 CloudFormation 擷取堆疊**

1. 使用內嵌建立 （您發出包含所有 RFC 和執行參數的`create-rfc`命令） 或範本建立 （您建立兩個 JSON 檔案，一個用於 RFC 參數，另一個用於執行參數），並使用兩個檔案作為輸入發出`create-rfc`命令。此處說明這兩種方法。

1. 使用傳回的 RFC ID 提交 RFC： `aws amscm submit-rfc --rfc-id {{ID}}`命令。

   監控 RFC： `aws amscm get-rfc --rfc-id {{ID}}`命令。

若要檢查變更類型版本，請使用下列命令：

```
aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value={{CT_ID}}
```
**注意**  
您可以將任何`CreateRfc`參數與任何 RFC 搭配使用，無論它們是否為變更類型結構描述的一部分。例如，若要在 RFC 狀態變更時取得通知，請將此行新增至請求的 `--notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}"` RFC 參數部分 （而非執行參數）。如需所有 CreateRfc 參數的清單，請參閱 [AMS 變更管理 API 參考](https://docs.aws.amazon.com/managedservices/latest/ApiReference-cm/API_CreateRfc.html)。

1. 準備您要用來更新堆疊的 CloudFormation 範本，並將其上傳至 S3 儲存貯體。如需重要詳細資訊，請參閱 [AWS CloudFormation 擷取準則、最佳實務和限制](https://docs.aws.amazon.com/managedservices/latest/appguide/cfn-author-templates.html)。

1. 建立 RFC 並將其提交至 AMS：

   1. 建立並儲存執行參數 JSON 檔案，包括您想要的 CloudFormation 範本參數。此範例會將其命名為 UpdateCfnParams.json.

     具有內嵌參數更新的範例 UpdateCfnParams.json 檔案：

     ```
     {
       "StackId": "{{stack-yjjoo9aicjyqw4ro2}}",
       "VpcId": "{{VPC_ID}}",
       "CloudFormationTemplate": "{\"AWSTemplateFormatVersion\":\"{{2010-09-09}}\",\"Description\":\"{{Create a SNS topic}}\",\"Parameters\":{\"{{TopicName}}\":{\"Type\":\"String\"},\"DisplayName\":{\"Type\":\"String\"}},\"{{Resources}}\":{\"SnsTopic\":{\"Type\":\"AWS::SNS::Topic\",\"Properties\":{\"TopicName\":{\"Ref\":\"TopicName\"},\"DisplayName\":{\"Ref\":\"DisplayName\"}}}}}",
       "TemplateParameters": [
         {
           "Key": "TopicName",
           "Value": "{{TopicNameCLI}}"
         },
         {
           "Key": "DisplayName",
           "Value": "{{DisplayNameCLI}}"
         }
       ],
       "TimeoutInMinutes": 1440
     }
     ```

     包含更新 CloudFormation 範本之 S3 儲存貯體端點的 UpdateCfnParams.json 檔案範例：

     ```
     {
       "StackId": "{{stack-yjjoo9aicjyqw4ro2}}",
       "VpcId": "{{VPC_ID}}",
       "CloudFormationTemplateS3Endpoint": "{{s3_url}}",
       "TemplateParameters": [
         {
           "Key": "TopicName",
           "Value": "{{TopicNameCLI}}"
         },
         {
           "Key": "DisplayName",
           "Value": "{{DisplayNameCLI}}"
         }
       ],
       "TimeoutInMinutes": {{1080}}
     }
     ```

1. 使用下列內容建立並儲存 RFC 參數 JSON 檔案。此範例會將其命名為 UpdateCfnRfc.json 檔案。

   ```
   {
      "ChangeTypeId": "ct-361tlo1k7339x",
      "ChangeTypeVersion": "1.0",
      "Title": "{{cfn-ingest-template-update}}"
   }
   ```

1. 建立 RFC，指定 UpdateCfnRfc 檔案和 UpdateCfnParams 檔案：

   ```
   aws amscm create-rfc --cli-input-json file://UpdateCfnRfc.json  --execution-parameters file://UpdateCfnParams.json
   ```

   您會在回應中收到新 RFC 的 ID，並使用它來提交和監控 RFC。在您提交之前，RFC 會保持在編輯狀態，不會啟動。

### 提示
<a name="ex-cfn-ingest-update-tip"></a>
+ 此變更類型現在位於 2.0 版。變更包括移除此 CT 版本 1.0 中使用的 **AutoApproveUpdateForResources** 參數，以及新增兩個新參數：**AutoApproveRiskyUpdates** 和 **BypassDriftCheck**。
+ 如果 S3 儲存貯體存在於 AMS 帳戶中，您必須使用此命令的 AMS 登入資料。例如，您可能需要在取得 AMS AWS Security Token Service (AWS STS) 登入資料`--profile saml`後附加 。
+ CloudFormation 範本中資源的所有`Parameter`值都必須具有值，可透過預設值或透過 CT 的參數區段自訂值。您可以透過建構 CloudFormation 範本資源來參考參數金鑰來覆寫參數值。如需示範執行方式的範例，請參閱 [CloudFormation 擷取堆疊：CFN 驗證器範例](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-cfn-ingest-validator.html)。

  重要：缺少格式中未明確提供的參數，預設為現有堆疊或範本上目前設定的值。
+ 如需您可以使用 CloudFormation Ingest 新增哪些自行佈建服務的清單，請參閱 [CloudFormation Ingest Stack：支援的資源](https://docs.aws.amazon.com/managedservices/latest/appguide/cfn-ingest-supp-services.html)。

  若要進一步了解 CloudFormation，請參閱 [AWS Cloud Formation](https://aws.amazon.com/cloudformation/)。

### 驗證 CloudFormation 擷取
<a name="cfn-ingest-validation"></a>

範本經過驗證，以確保可以在 AMS 帳戶中建立。如果通過驗證，則會更新為包含符合 AMS 所需的任何資源或組態。這包括新增 資源，例如 Amazon CloudWatch 警示，以允許 AMS Operations 監控堆疊。

如果以下任何一項成立，RFC 會遭到拒絕：
+ RFC JSON 語法不正確或不遵循指定的格式。
+ 提供的 S3 儲存貯體預先簽章 URL 無效。
+ 範本不是有效的 CloudFormation 語法。
+ 範本未針對所有參數值設定預設值。
+ 範本未通過 AMS 驗證。如需 AMS 驗證步驟，請參閱本主題稍後的資訊。

如果 CloudFormation 堆疊因為資源建立問題而無法建立，RFC 會失敗。

若要進一步了解 CFN 驗證和驗證程式，請參閱[範本驗證](https://docs.aws.amazon.com/managedservices/latest/appguide/cfn-author-templates.html)和 [CloudFormation 擷取堆疊：CFN 驗證程式範例](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-cfn-ingest-validator.html)。

## 核准 CloudFormation 擷取堆疊變更集
<a name="ex-cfn-ingest-approve-and-update-col"></a>

### 使用主控台核准和更新 CloudFormation 擷取堆疊
<a name="cfn-ingest-approve-update-con"></a>

![](http://docs.aws.amazon.com/zh_tw/managedservices/latest/appguide/images/guiCfnStackApproveAndUpdateCT.png)


**使用主控台核准和更新 CloudFormation 擷取堆疊**

1. 導覽至**建立 RFC** 頁面：在 AMS 主控台的左側導覽窗格中，按一下 **RFCs**以開啟 RFCs清單頁面，然後按一下**建立 RFC**。

1. 在預設**瀏覽變更類型檢視中選擇熱門的變更類型** (CT)，或在**依類別選擇**檢視中選擇 CT。
   + **依變更類型瀏覽**：您可以在**快速建立**區域中按一下熱門的 CT，以立即開啟**執行 RFC** 頁面。請注意，您無法透過快速建立選擇較舊的 CT 版本。

     若要排序 CTs，請使用**卡片**或**資料表**檢視中的所有**變更類型**區域。在任一檢視中，選取 CT，然後按一下**建立 RFC** 以開啟**執行 RFC** 頁面。如果適用，**建立較舊版本**選項會顯示在**建立 RFC** 按鈕旁。
   + **依類別選擇**：選取類別、子類別、項目和操作，如果適用，CT 詳細資訊方塊會開啟，其中包含**使用較舊版本建立**的選項。按一下**建立 RFC** 以開啟**執行 RFC** 頁面。

1. 在**執行 RFC** 頁面上，開啟 CT 名稱區域以查看 CT 詳細資訊方塊。需要**主旨** （如果您在**瀏覽變更類型**檢視中選擇 CT，則會為您填入）。開啟**其他組態**區域以新增 RFC 的相關資訊。

   在**執行組態**區域中，使用可用的下拉式清單或輸入必要參數的值。若要設定選用的執行參數，請開啟**其他組態**區域。

1. 完成後，請按一下**執行**。如果沒有錯誤，**RFC 成功建立**的頁面會顯示已提交的 RFC 詳細資訊，以及初始的**執行輸出**。

1. 開啟**執行參數**區域以查看您提交的組態。重新整理頁面以更新 RFC 執行狀態。或者，取消 RFC 或使用頁面頂端的選項建立 RFC 的副本。

### 使用 CLI 核准和更新 CloudFormation 擷取堆疊
<a name="cfn-ingest-approve-update-cli"></a>

**使用 CLI 核准和更新 CloudFormation 擷取堆疊**

1. 使用內嵌建立 （您發出包含所有 RFC 和執行參數的`create-rfc`命令） 或範本建立 （您建立兩個 JSON 檔案，一個用於 RFC 參數，另一個用於執行參數），並使用兩個檔案作為輸入發出`create-rfc`命令。此處說明這兩種方法。

1. 使用傳回的 RFC ID 提交 RFC： `aws amscm submit-rfc --rfc-id {{ID}}`命令。

   監控 RFC： `aws amscm get-rfc --rfc-id {{ID}}`命令。

若要檢查變更類型版本，請使用下列命令：

```
aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value={{CT_ID}}
```
**注意**  
您可以將任何`CreateRfc`參數與任何 RFC 搭配使用，無論它們是否為變更類型結構描述的一部分。例如，若要在 RFC 狀態變更時取得通知，請將此行新增至請求的 `--notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}"` RFC 參數部分 （而非執行參數）。如需所有 CreateRfc 參數的清單，請參閱 [AMS 變更管理 API 參考](https://docs.aws.amazon.com/managedservices/latest/ApiReference-cm/API_CreateRfc.html)。

1. 將此變更類型的執行參數 JSON 結構描述輸出到目前資料夾中的檔案。此範例將其命名為 CreateAsgParams.json:

   ```
   aws amscm create-rfc --change-type-id "ct-1404e21baa2ox" --change-type-version "1.0" --title "{{Approve Update}}" --execution-parameters file://{{PATH_TO_EXECUTION_PARAMETERS}} --profile saml
   ```

1. 修改和儲存結構描述，如下所示：

   ```
   {
     "StackId": "{{STACK_ID}}",
     "VpcId": "{{VPC_ID}}",
     "ChangeSetName": "{{UPDATE-ef81e2bc-03f6-4b17-a3c7-feb700e78faa}}",
     "TimeoutInMinutes": {{1080}}
   }
   ```

### 提示
<a name="ex-cfn-ingest-approve-and-update-tip"></a>

**注意**  
如果堆疊中有多個資源，而且您只要刪除一部分的堆疊資源，請使用 CloudFormation Update CT；請參閱 [CloudFormation Ingest Stack：Update](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-cfn-ingest-update-col.html)。您也可以提交服務請求案例，AMS 工程師可以視需要協助您製作變更集。

若要進一步了解 AWS CloudFormation，請參閱 [AWS CloudFormation](https://aws.amazon.com/cloudformation/)。

## 更新 CloudFormation 堆疊終止保護
<a name="ex-cfn-term-pro-update-col"></a>

### 使用 主控台更新 CloudFormation 終止保護堆疊
<a name="cfn-update-term-pro-con"></a>

以下顯示 AMS 主控台中的此變更類型。

![](http://docs.aws.amazon.com/zh_tw/managedservices/latest/appguide/images/guiCfnProTermUpdateCT.png)


運作方式：

1. 導覽至**建立 RFC** 頁面：在 AMS 主控台的左側導覽窗格中，按一下 **RFCs**以開啟 RFCs清單頁面，然後按一下**建立 RFC**。

1. 在預設**瀏覽變更類型檢視中選擇熱門的變更類型** (CT)，或在**依類別選擇**檢視中選擇 CT。
   + **依變更類型瀏覽**：您可以在**快速建立**區域中按一下熱門的 CT，以立即開啟**執行 RFC** 頁面。請注意，您無法透過快速建立選擇較舊的 CT 版本。

     若要排序 CTs，請使用**卡片**或**資料表**檢視中的所有**變更類型**區域。在任一檢視中，選取 CT，然後按一下**建立 RFC** 以開啟**執行 RFC** 頁面。如果適用，**建立較舊版本**選項會顯示在**建立 RFC** 按鈕旁。
   + **依類別選擇**：選取類別、子類別、項目和操作，如果適用，CT 詳細資訊方塊會開啟，其中包含**使用較舊版本建立**的選項。按一下**建立 RFC** 以開啟**執行 RFC** 頁面。

1. 在**執行 RFC** 頁面上，開啟 CT 名稱區域以查看 CT 詳細資訊方塊。需要**主旨** （如果您在**瀏覽變更類型**檢視中選擇 CT，則會為您填入）。開啟**其他組態**區域以新增 RFC 的相關資訊。

   在**執行組態**區域中，使用可用的下拉式清單或輸入必要參數的值。若要設定選用的執行參數，請開啟**其他組態**區域。

1. 完成後，請按一下**執行**。如果沒有錯誤，**RFC 成功建立**的頁面會顯示已提交的 RFC 詳細資訊，以及初始的**執行輸出**。

1. 開啟**執行參數**區域以查看您提交的組態。重新整理頁面以更新 RFC 執行狀態。或者，取消 RFC 或使用頁面頂端的選項建立 RFC 的副本。

### 使用 CLI 更新 CloudFormation 堆疊終止保護
<a name="cfn-update-term-pro-cli"></a>

運作方式：

1. 使用內嵌建立 （您發出包含所有 RFC 和執行參數的`create-rfc`命令） 或範本建立 （您建立兩個 JSON 檔案，一個用於 RFC 參數，另一個用於執行參數），並使用兩個檔案作為輸入發出`create-rfc`命令。此處說明這兩種方法。

1. 使用傳回的 RFC ID 提交 RFC： `aws amscm submit-rfc --rfc-id {{ID}}`命令。

   監控 RFC： `aws amscm get-rfc --rfc-id {{ID}}`命令。

若要檢查變更類型版本，請使用下列命令：

```
aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value={{CT_ID}}
```
**注意**  
您可以將任何`CreateRfc`參數與任何 RFC 搭配使用，無論它們是否為變更類型結構描述的一部分。例如，若要在 RFC 狀態變更時取得通知，請將此行新增至請求的 `--notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}"` RFC 參數部分 （而非執行參數）。如需所有 CreateRfc 參數的清單，請參閱 [AMS 變更管理 API 參考](https://docs.aws.amazon.com/managedservices/latest/ApiReference-cm/API_CreateRfc.html)。

僅指定您要變更的參數。缺少參數會保留現有的值。

*內嵌建立*：

使用內嵌提供的執行參數發出建立 RFC 命令 （在內嵌提供執行參數時逸出引號），然後提交傳回的 RFC ID。例如，您可以將內容取代為如下內容：

```
aws amscm create-rfc \
--change-type-id "ct-2uzbqr7x7mekd" \
--change-type-version "1.0" \
--title "{{Enable termination protection on CFN stack}}" \
--execution-parameters "{\"DocumentName\":\"AWSManagedServices-ManageResourceTerminationProtection\",\"Region\":\"{{us-east-1}}\",\"Parameters\":{\"ResourceId\":[\"{{stack-psvnq6cupymio3enl}}\"],\"TerminationProtectionDesiredState\":[\"{{enabled}}\"]}}"
```

*範本建立*：

1. 將此變更類型的執行參數輸出至 JSON 檔案；此範例會將其命名為 EnableTermProCFNParams.json:

   ```
   aws amscm get-change-type-version --change-type-id "ct-2uzbqr7x7mekd" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > EnableTermProCFNParams.json
   ```

1. 修改並儲存 EnableTermProCFNParams 檔案，只保留您要變更的參數。例如，您可以將內容取代為如下內容：

   ```
   {
     "DocumentName": "AWSManagedServices-ManageResourceTerminationProtection",
     "Region": "{{us-east-1}}",
     "Parameters": {
       "ResourceId": ["{{stack-psvnq6cupymio3enl}}"],
       "TerminationProtectionDesiredState": ["{{enabled}}"]
     }
   }
   ```

1. 將 RFC 範本輸出至目前資料夾中的檔案；此範例會將其命名為 EnableTermProCFNRfc.json:

   ```
   aws amscm create-rfc --generate-cli-skeleton > EnableTermProCFNRfc.json
   ```

1. 修改並儲存 EnableTermProCFNRfc.json 檔案。例如，您可以將內容取代為如下內容：

   ```
   {
       "ChangeTypeId": "ct-2uzbqr7x7mekd",
       "ChangeTypeVersion": "1.0",
       "Title": "{{Enable termination protection on CFN instance}}"
   }
   ```

1. 建立 RFC，指定 EnableTermProCFNRfc 檔案和 EnableTermProCFNParams 檔案：

   ```
   aws amscm create-rfc --cli-input-json file://EnableTermProCFNRfc.json  --execution-parameters file://EnableTermProCFNParams.json
   ```

   您會在回應中收到新 RFC 的 ID，並且可以使用它來提交和監控 RFC。在您提交之前，RFC 會保持在編輯狀態，不會啟動。

### 提示
<a name="ex-cfn-term-pro-update-tip"></a>

**注意**  
Amazon EC2、[EC2 堆疊有相關的 CT：更新終止保護](https://docs.aws.amazon.com/managedservices/latest/ctref/ex-ec2-term-pro-update-col.html)。

若要進一步了解終止保護，請參閱[保護堆疊免於遭到刪除](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)。