

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

# CloudFormation 範本的堆疊 \$1 更新
<a name="management-custom-stack-from-cloudformation-template-update"></a>

更新 CFN 堆疊的範本和/或參數。若要僅更新現有堆疊中的參數，不需要修改後的 CFN 範本，可以改為提供修改過的參數。會覆寫現有參數的值，並新增新參數的值。若要新增、刪除或修改資源，或變更未透過參數參考的屬性，請使用修改過的 CFN 範本。如果更新會導致堆疊中的資源遭到取代或移除，RFC 失敗，並且需要透過「核准 ChangeSet 和更新 CloudFormation 堆疊」CT (ct-1404e21baa2ox) 進行核准。

**完整分類：**管理 \$1 自訂堆疊 \$1 CloudFormation 範本的堆疊 \$1 更新

## 變更類型詳細資訊
<a name="ct-361tlo1k7339x-MCSu-table"></a>


****  

|  |  | 
| --- |--- |
| 變更類型 ID | ct-361tlo1k7339x | 
| 目前版本 | 2.0 | 
| 預期的執行持續時間 | 360 分鐘 | 
| AWS 核准 | 必要 | 
| 客戶核准 | 非必要 | 
| 執行模式 | 自動化 | 

## 其他資訊
<a name="management-custom-stack-from-cloudformation-template-update-info"></a>

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

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

![\[CloudFormation stack update interface showing description, ID, and version details.\]](http://docs.aws.amazon.com/zh_tw/managedservices/latest/ctref/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)。

## 執行輸入參數
<a name="management-custom-stack-from-cloudformation-template-update-input"></a>

如需執行輸入參數的詳細資訊，請參閱 [變更類型的結構描述 ct-361tlo1k7339x](schemas.md#ct-361tlo1k7339x-schema-section)。

## 範例：必要參數
<a name="management-custom-stack-from-cloudformation-template-update-ex-min"></a>

```
{
  "StackId": "stack-kiwonebfnadq08sol",
  "VpcId": "vpc-01234567890abcdef",
  "TimeoutInMinutes": 360
}
```

## 範例：所有參數
<a name="management-custom-stack-from-cloudformation-template-update-ex-max"></a>

```
Example not available.
```