更新 CloudFormation StackSets - AWS CloudFormation

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

更新 CloudFormation StackSets

您可以使用 CloudFormation 主控台或 更新堆疊集 AWS CLI。

注意

若要覆寫堆疊執行個體的參數值,請參閱 覆寫堆疊執行個體上的參數。若要從堆疊集新增和移除帳戶和區域,請參閱 將堆疊新增至 StackSets從 刪除堆疊執行個體 StackSets

更新您的堆疊集 (主控台)

  1. 登入 AWS Management Console 並在 https://console.aws.amazon.com/cloudformation 開啟 AWS CloudFormation 主控台。

  2. 在畫面頂端的導覽列上,選擇您建立堆疊集的 AWS 區域 。

  3. 從導覽窗格中,選擇 StackSets

  4. StackSets頁面上,選取您要更新的堆疊集。

  5. 選取堆疊集後,從動作功能表中選擇編輯 StackSet詳細資訊

  6. 選擇範本頁面上,視需要更新許可區段,或跳至下一個步驟。

  7. 對於先決條件 - 準備範本,選擇使用目前範本來使用目前範本,或將目前範本取代為指定 S3 URL到另一個範本或上傳新範本。

  8. 選擇 Next (下一步)

  9. 指定 StackSet 詳細資訊頁面上,針對StackSet 描述,視需要更新堆疊集的描述。

  10. 針對 參數,視需要更新參數值。

  11. 選擇 Next (下一步)

  12. 設定 StackSet 選項頁面上,針對標籤,視需要修改標籤。您可以新增、更新或刪除標籤。如需如何在 中使用標籤的詳細資訊 AWS,請參閱AWS Billing and Cost Management 《 使用者指南》中的使用成本分配標籤來組織和追蹤 AWS 成本

  13. 對於執行組態,您可以視需要更新執行組態。

    注意

    如果已經有執行中或已排入佇列的操作, 會 StackSets 佇列所有傳入的操作,即使它們沒有衝突。

    當堆疊集有執行中或排入佇列的操作時,您無法修改堆疊集的執行組態。

  14. 如果您的範本包含IAM資源,對於功能,請選擇我確認此範本可能會建立IAM資源,以指定您想要在範本中使用IAM資源。如需詳細資訊,請參閱認可 CloudFormation 範本中的 IAM 資源

  15. 選擇 Next (下一步)

  16. 設定部署選項頁面上,提供更新的帳戶和區域。

    CloudFormation 會在第一個區域中的指定帳戶中部署堆疊更新,然後移至下一個,以此類推,只要區域的部署失敗不超過指定的容錯能力。

    1. 【自我管理許可】 針對帳戶部署位置,選擇在帳戶中部署堆疊。在文字方塊中貼上IDs您用來建立堆疊集的目標帳戶,以逗號分隔多個數字。

      【服務受管許可】 執行下列其中一項操作:

      • 選擇部署到組織單位 (OUs)。輸入OUs您用來建立堆疊集的目標。

      • 選擇 Deploy to accounts (部署至帳戶)。貼上IDs您用來建立堆疊集的目標 OU IDs或帳戶。

    2. 針對指定區域,指定您要 CloudFormation 部署更新時的順序。

    3. 針對 Deployment options (部署選項)

      • 針對最大並行帳戶,視需要修改最大並行帳戶。

      • 針對容錯能力,視需要修改容錯能力。

      • 對於區域並行,視需要修改區域並行。

      • 對於並行模式,視需要修改並行模式。

    4. 選擇 Next (下一步) 繼續。

  17. Review (檢閱) 頁面上,檢視您的選擇。若要進行變更,請在相關區段中選擇編輯

  18. 當您準備好繼續時,請選擇提交

    CloudFormation 會開始將更新套用至堆疊集,並顯示堆疊集詳細資訊頁面的操作索引標籤。您可以在 Operations (操作) 標籤中檢視更新操作的進度和狀態。

更新您的堆疊集 (AWS CLI)

擔任委派管理員時,每次執行命令DELEGATED_ADMIN時,您必須將 --call-as選項設定為 StackSets。

--call-as DELEGATED_ADMIN
  1. 使用 update-stack-set 命令來變更堆疊集。

    在下列範例命令中,我們使用 更新堆疊集--parameters。具體而言,我們會將交付管道組態的預設快照交付頻率從 變更為 TwentyFour_Hours Twelve_Hours。由於我們仍在使用目前的範本,因此我們新增 --use-previous-template選項。

    【自我管理許可】 對於 --accounts選項,請提供IDs您要更新的目標帳戶。

    aws cloudformation update-stack-set --stack-set-name my-awsconfig-stackset \ --use-previous-template --parameters ParameterKey=MaximumExecutionFrequency,ParameterValue=Twelve_Hours \ --accounts '["account_ID_1","account_ID_2"]' \ --regions '["us-west-2","us-east-1"]'

    【服務受管許可】 對於 --deployment-targets選項,請提供IDs您要更新的目標組織 (根) IDIDs、OU 或 AWS Organizations 帳戶。

    aws cloudformation update-stack-set --stack-set-name my-stackset \ --use-previous-template \ --parameters ParameterKey=MaximumExecutionFrequency,ParameterValue=Twelve_Hours \ --deployment-targets OrganizationalUnitIds='["ou-rcuk-1x5j1lwo", "ou-rcuk-slr5lh0a"]' \ --regions '["us-west-2","us-east-1"]'

    若要指定如何 CloudFormation 執行此堆疊集操作的偏好設定,請指定 --operation-preferences選項,如下列範例所示。基於此範例的目的,我們使用計數,而非百分比。若要改為套用百分比,請使用 FailureTolerancePercentageMaxConcurrentPercentage

    --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1
    注意

    MaxConcurrentCount 的值取決於 FailureToleranceCount 的值。MaxConcurrentCount 最多比 FailureToleranceCount 多 1。

  2. 藉由執行 describe-stack-set-operation 命令以顯示更新操作的狀態和結果,確認您的堆疊集已成功更新。針對 --operation-id,使用您的 update-stack-set 命令所傳回的操作 ID。

    aws cloudformation describe-stack-set-operation \ --operation-id operation_ID