AMS CloudFormation 擷取 - AMS 進階應用程式開發人員指南

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

AMS CloudFormation 擷取

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

AMS AWS CloudFormation 擷取程序涉及下列各項:

  • 準備自訂 CloudFormation 範本並將其上傳至 S3 儲存貯體,或在建立 RFC 時內嵌範本。如果您使用具有預先簽章 URL 的 S3 儲存貯體;如需詳細資訊,請參閱預先簽章

  • 將 CloudFormation 擷取變更類型提交至 RFC 中的 AMS。如需 CFN 擷取變更類型演練,請參閱 建立 CloudFormation 擷取堆疊。如需 CFN 擷取範例,請參閱 AWS CloudFormation 擷取:範例

  • 堆疊建立後,您可以更新它,並修復它上的偏離;此外,如果更新失敗,您可以明確核准和實作更新。本節說明所有這些程序。

    如需 CFN 偏離偵測的資訊,請參閱新增 – CloudFormation 偏離偵測

注意

  • 此變更類型現在具有 2.0 版。2.0 版為自動化,非手動執行。這可讓 CT 執行速度更快。此版本引進了兩個新參數:CloudFormationTemplate,可讓您將自訂 CloudFormation 範本貼入 RFC,而 VpcId 可讓您將 CloudFormation 擷取與 AMS 多帳戶登陸區域搭配使用。

  • 1.0 版是手動變更類型。這表示 AMS 運算子必須先採取一些動作,變更類型才能成功結束。至少需要檢閱。此版本也需要 CloudFormationTemplateS3Endpoint 參數值為預先簽章的 URL。

建立 CloudFormation 擷取堆疊

Create Stack From CloudFormation Template interface showing description, ID, and version.

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

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

  2. 在預設瀏覽變更類型檢視中選擇熱門的變更類型 (CT),或在依類別選擇檢視中選擇 CT。

    • 依變更類型瀏覽:您可以在快速建立區域中按一下熱門的 CT,以立即開啟執行 RFC 頁面。請注意,您無法透過快速建立選擇較舊的 CT 版本。

      若要排序 CTs,請使用卡片資料表檢視中的所有變更類型區域。在任一檢視中,選取 CT,然後按一下建立 RFC 以開啟執行 RFC 頁面。如果適用,建立較舊版本選項會顯示在建立 RFC 按鈕旁。

    • 依類別選擇:選取類別、子類別、項目和操作,如果適用,CT 詳細資訊方塊會開啟,並顯示使用較舊版本建立的選項。按一下建立 RFC 以開啟執行 RFC 頁面。

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

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

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

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

使用 CLI 建立 CloudFormation 擷取堆疊

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

  2. 使用傳回的 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 參考

  1. 準備用於建立堆疊的 CloudFormation 範本,並將其上傳至 S3 儲存貯體。如需重要詳細資訊,請參閱 AWS CloudFormation 擷取準則、最佳實務和限制

  2. 建立 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"} ] }
  3. 使用下列內容建立並儲存 RFC 參數 JSON 檔案。下列範例會將其命名為 CreateCfnRfc.json 檔案:

    { "ChangeTypeId": "ct-36cn2avfrrj9v", "ChangeTypeVersion": "2.0", "Title": "cfn-ingest" }
  4. 建立 RFC,指定 CreateCfnRfc 檔案和 CreateCfnParams 檔案:

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

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

注意

此變更類型位於 2.0 版,且為自動化 (非手動執行)。這可讓 CT 執行更快進行,而新的參數 CloudFormationTemplate 可讓您將自訂 CloudFormation 範本貼入 RFC。此外,在此版本中,如果您指定自己的安全群組,我們不會連接預設 AMS 安全群組。如果您未在請求中指定自己的安全群組,AMS 會連接 AMS 預設安全群組。在 CFN Ingest v1.0 中,無論您是否提供自己的安全群組,我們一律會附加 AMS 預設安全群組。

AMS 已啟用 17 個 AMS 自我佈建服務,可用於此變更類型。如需支援資源的資訊,請參閱 CloudFormation 擷取堆疊:支援的資源

注意

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

注意

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

相關變更類型:核准 CloudFormation 擷取堆疊變更集更新 AWS CloudFormation 擷取堆疊

若要進一步了解 AWS CloudFormation,請參閱 AWS Cloud Formation。若要查看 CloudFormation 範本,請開啟 AWS CloudFormation 範本參考

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

如果以下任何一項成立,RFC 會遭到拒絕:

  • RFC JSON 語法不正確或不遵循指定的格式。

  • 提供的 S3 儲存貯體預先簽章 URL 無效。

  • 範本不是有效的 AWS CloudFormation 語法。

  • 範本未針對所有參數值設定預設值。

  • 範本未通過 AMS 驗證。如需 AMS 驗證步驟,請參閱本主題稍後的資訊。

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

若要進一步了解 CFN 驗證和驗證程式,請參閱範本驗證CloudFormation 擷取堆疊:CFN 驗證程式範例

更新 AWS CloudFormation 擷取堆疊

CloudFormation stack update interface showing description, ID, and version details.

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

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

  2. 在預設瀏覽變更類型檢視中選擇熱門的變更類型 (CT),或在依類別選擇檢視中選擇 CT。

    • 依變更類型瀏覽:您可以在快速建立區域中按一下熱門的 CT,以立即開啟執行 RFC 頁面。請注意,您無法透過快速建立選擇較舊的 CT 版本。

      若要排序 CTs,請使用卡片資料表檢視中的所有變更類型區域。在任一檢視中,選取 CT,然後按一下建立 RFC 以開啟執行 RFC 頁面。如果適用,建立較舊版本選項會顯示在建立 RFC 按鈕旁。

    • 依類別選擇:選取類別、子類別、項目和操作,如果適用,CT 詳細資訊方塊會開啟,其中包含使用較舊版本建立的選項。按一下建立 RFC 以開啟執行 RFC 頁面。

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

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

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

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

使用 CLI 更新 CloudFormation 擷取堆疊

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

  2. 使用傳回的 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 參考

  1. 準備您要用來更新堆疊的 AWS CloudFormation 範本,並將其上傳至 S3 儲存貯體。如需重要詳細資訊,請參閱 AWS CloudFormation 擷取準則、最佳實務和限制

  2. 建立 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 }
  3. 使用下列內容建立並儲存 RFC 參數 JSON 檔案。此範例會將其命名為 UpdateCfnRfc.json 檔案。

    { "ChangeTypeId": "ct-361tlo1k7339x", "ChangeTypeVersion": "1.0", "Title": "cfn-ingest-template-update" }
  4. 建立 RFC,指定 UpdateCfnRfc 檔案和 UpdateCfnParams 檔案:

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

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

  • 此變更類型現在位於 2.0 版。變更包括移除此 CT 版本 1.0 中使用的 AutoApproveUpdateForResources 參數,以及新增兩個新參數:AutoApproveRiskyUpdatesBypassDriftCheck

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

  • CloudFormation 範本中資源的所有Parameter值都必須具有一個值,可透過預設值或透過 CT 的參數區段自訂值。您可以透過建構 CloudFormation 範本資源來參考參數金鑰來覆寫參數值。如需示範執行方式的範例,請參閱 CloudFormation 擷取堆疊:CFN 驗證器範例

    重要:缺少格式中未明確提供的參數,預設為現有堆疊或範本上目前設定的值。

  • 如需您可以使用 AWS CloudFormation Ingest 新增哪些自行佈建服務的清單,請參閱 CloudFormation Ingest Stack:支援的資源

    若要進一步了解 AWS CloudFormation,請參閱 AWS Cloud Formation

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

如果以下任何一項成立,RFC 會遭到拒絕:

  • RFC JSON 語法不正確或不遵循指定的格式。

  • 提供的 S3 儲存貯體預先簽章 URL 無效。

  • 範本不是有效的 AWS CloudFormation 語法。

  • 範本未針對所有參數值設定預設值。

  • 範本未通過 AMS 驗證。如需 AMS 驗證步驟,請參閱本主題稍後的資訊。

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

若要進一步了解 CFN 驗證和驗證程式,請參閱範本驗證CloudFormation 擷取堆疊:CFN 驗證程式範例

核准 CloudFormation 擷取堆疊變更集

Details of a CloudFormation ChangeSet for approving and updating a stack, including ID and execution mode.

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

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

  2. 在預設瀏覽變更類型檢視中選擇熱門的變更類型 (CT),或在依類別選擇檢視中選擇 CT。

    • 依變更類型瀏覽:您可以在快速建立區域中按一下熱門的 CT,以立即開啟執行 RFC 頁面。請注意,您無法透過快速建立選擇較舊的 CT 版本。

      若要排序 CTs,請使用卡片資料表檢視中的所有變更類型區域。在任一檢視中,選取 CT,然後按一下建立 RFC 以開啟執行 RFC 頁面。如果適用,建立舊版選項會顯示在建立 RFC 按鈕旁。

    • 依類別選擇:選取類別、子類別、項目和操作,如果適用,CT 詳細資訊方塊會開啟,並顯示使用較舊版本建立的選項。按一下建立 RFC 以開啟執行 RFC 頁面。

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

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

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

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

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

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

  2. 使用傳回的 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 參考

  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
  2. 修改和儲存結構描述,如下所示:

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

如果堆疊中有多個資源,而且您只想要刪除一部分的堆疊資源,請使用 CloudFormation Update CT;請參閱 CloudFormation Ingest Stack:Update。您也可以提交服務請求案例,如有需要,AMS 工程師可協助您製作變更集。

若要進一步了解 AWS CloudFormation,請參閱 AWS CloudFormation

更新 AWS CloudFormation 堆疊終止保護

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

Update Termination Protection interface showing description, ID, and version fields.

運作方式:

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

  2. 在預設瀏覽變更類型檢視中選擇熱門的變更類型 (CT),或在依類別選擇檢視中選擇 CT。

    • 依變更類型瀏覽:您可以在快速建立區域中按一下熱門的 CT,以立即開啟執行 RFC 頁面。請注意,您無法透過快速建立選擇較舊的 CT 版本。

      若要排序 CTs,請使用卡片資料表檢視中的所有變更類型區域。在任一檢視中,選取 CT,然後按一下建立 RFC 以開啟執行 RFC 頁面。如果適用,建立舊版選項會顯示在建立 RFC 按鈕旁。

    • 依類別選擇:選取類別、子類別、項目和操作,如果適用,CT 詳細資訊方塊會開啟,其中包含使用較舊版本建立的選項。按一下建立 RFC 以開啟執行 RFC 頁面。

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

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

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

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

運作方式:

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

  2. 使用傳回的 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 參考

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

內嵌建立

使用內嵌提供的執行參數發出建立 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
  2. 修改並儲存 EnableTermProCFNParams 檔案,只保留您要變更的參數。例如,您可以將內容取代為如下內容:

    { "DocumentName": "AWSManagedServices-ManageResourceTerminationProtection", "Region": "us-east-1", "Parameters": { "ResourceId": ["stack-psvnq6cupymio3enl"], "TerminationProtectionDesiredState": ["enabled"] } }
  3. 將 RFC 範本輸出至目前資料夾中的檔案;此範例會將其命名為 EnableTermProCFNRfc.json:

    aws amscm create-rfc --generate-cli-skeleton > EnableTermProCFNRfc.json
  4. 修改並儲存 EnableTermProCFNRfc.json 檔案。例如,您可以將內容取代為如下內容:

    { "ChangeTypeId": "ct-2uzbqr7x7mekd", "ChangeTypeVersion": "1.0", "Title": "Enable termination protection on CFN instance" }
  5. 建立 RFC,指定 EnableTermProCFNRfc 檔案和 EnableTermProCFNParams 檔案:

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

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

若要進一步了解終止保護,請參閱防止堆疊遭到刪除