更新您的堆疊集 - AWS CloudFormation

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

更新您的堆疊集

您可以在中更新堆疊集 AWS Management Console,或使用中的 AWS CloudFormation 指令來更新堆疊集 AWS CLI。在此逐步教學中,我們將交付管道組態的預設快照交付頻率,從 24hours (24 小時) 變更為 12hours (12 小時)

若要覆寫特定堆疊執行個體的參數值,請參閱覆寫堆疊執行個體上的參數

使用 AWS CloudFormation 主控台更新堆疊集

  1. 請在以下位置開啟 AWS CloudFormation 主控台。 https://console.aws.amazon.com/cloudformation

  2. 在導覽窗格中,選擇StackSets

  3. 在 StackSets 頁面上,選取您在其中建立的堆疊組合建立堆疊集。在此逐步教學中,我們建立了名為 my-awsconfig-stackset 的堆疊集。

  4. 選取堆疊集後,從「作」功能表選擇 「編輯 StackSet詳細資料」。

    在堆疊集頁面中更新堆疊集
  5. Choose a template (選擇範本) 頁面上,選擇您要更新目前的範本、指定另一個範本的 S3 URL,或將新的範本上傳至 AWS CloudFormation。在此逐步教學中,我們將使用目前的範本。選擇 Use current template (使用目前的範本),然後選擇 Next (下一步)

  6. 在 [指定 StackSet 詳細資料] 頁面上,修改參數值並指定部署目標。

    1. [自我管理許可] 對於 Deployment targets (部署目標),選擇 Deploy stacks in accounts (在帳戶中部署堆疊)。在文字方塊中貼上您的目標帳戶號碼,並以逗號分隔多個號碼。

      [服務管理許可] 對於 Deployment targets (部署目標),選擇要部署到組織中的哪些帳戶。

    2. 選取區域

    3. Frequency (頻率) 參數的值從 24hours (24 小時) 變更為 12hours (12 小時)

      如需有關此參數及其他指定使用值的參數的詳細資訊 AWS Config,請參閱AWS Config 開發人員指南中的使用主控台設定 AWS Config

      請勿變更其他參數。為了此逐步解說之目的,我們不會設定 Amazon SNS 更新。

      完成時,請選擇下一步

  7. [設定 StackSet 選項] 頁面上,不需要變更,但您可以視需要在此處更新、刪除或新增標籤。有關如何在中使用標籤的詳細資訊 AWS,請參閱《使用AWS Billing and Cost Management 者指南》中的使用成本配置標籤。您也可以管理執行組態,以指定是否同時 StackSets執行非衝突作業,以及佇列衝突的作業。衝突作業完成後,會依要求順序 StackSets 啟動佇列的作業。

    注意

    如果已經有執行中或已排入佇列的作業,則會將所有內送作業排入 StackSets 佇列,即使它們不衝突也一樣。

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

    Permissions (許可) 保持不變,然後選擇 Next (下一步)。

  8. Set deployment options (設定部署選項) 頁面上,保留 Maximum concurrent accounts (並行帳戶數量上限) 的預設值 1By number (依照號碼)。將 Failure tolerance (容錯能力) 維持在預設值 0,並維持 By number (依照號碼) 預設選項。選擇下一步

    注意

    您不可以在此變更帳戶和區域,換言之,您無法將堆疊集變更部署至某些帳戶和區域中的堆疊,但其他帳戶和區域則可以。

  9. Review (檢閱) 頁面上,檢閱您的選擇以及堆疊集的屬性。若要進行變更,請在您要變更屬性的區域右上角選擇 Edit (編輯)。在您可以更新堆疊集之前,必須填入 Capabilities (功能) 區域中的核取方塊,確認您使用堆疊集所更新的一些資源可能需要新的 IAM 資源和許可。如需潛在必要權限的詳細資訊,請參閱確認範本中的IAM AWS CloudFormation 資源。當您準備好建立堆疊集時,請選擇 Submit (提交)。

    AWS CloudFormation 開始將更新套用至堆疊集,並顯示堆疊集詳細資料頁面的 [作業] 索引標籤

  10. 您可以在 Operations (操作) 標籤中檢視更新操作的進度和狀態。您應該會在 Parameter (參數) 索引標籤中看到更新的 Frequency (頻率) 參數。

使用更新您的堆疊集 AWS CLI

當您以委派的管理員身分執行時,您必須將--call-as參數設定為DELEGATED_ADMIN每次執行 StackSets命令時。

--call-as DELEGATED_ADMIN

執行update-stack-set AWS CLI 命令以變更堆疊集。在此逐步教學中,我們將更新 MaximumExecutionFrequency 參數值。如需有關建立或更新 AWS Config 規則的參數名稱和值的詳細資訊,請參閱參 AWS CLI 考put-config-rule中的。若要變更範本參數值,請新增 --parameters 參數。如需有關您可以為其指定值的詳細資訊--parameters,請參閱 Parameter AWS CloudFormation API 參考和AWS CLI 命令參考update-stack中的。

在此處顯示的範例命令中,我們正在使用更新堆疊集--parameters;具體來說,我們將傳送通道組態的預設快照傳遞頻率從 TwentyFour_Hours 變更為 Delive_Hours 因為我們仍使用目前的範本,因此我們新增 --use-previous-template 參數。

  1. 執行下列命令。針對堆疊集名稱,指定堆疊集名稱 my-awsconfig-stackset

    藉由將 FailureToleranceCount 參數中的 0 設定為 MaxConcurrentCount,並將 1 設定為 --operation-preferences,以設定容錯能力和最大並行帳戶,如以下範例所示。若要改為套用百分比,請使用 FailureTolerancePercentageMaxConcurrentPercentage。為了此逐步解說之目的,我們將使用計數而非百分比。

    注意

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

    [自我管理許可] 提供更新的目標帳戶 ID。

    aws cloudformation update-stack-set --stack-set-name my-awsconfig-stackset --use-previous-template --parameters ParameterKey=MaximumExecutionFrequency,ParameterValue=TwentyFour_Hours\\,Twelve_Hours --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1 --accounts '["account_ID_1","account_ID_2"]'

    [服務管理的權限] 提供您要更新為目標的組織 (根) ID、OU ID 或 AWS 組織帳戶 ID。

    aws cloudformation update-stack-set --stack-set-name my-awsconfig-stackset --use-previous-template --parameters ParameterKey=MaximumExecutionFrequency,ParameterValue=TwentyFour_Hours\\,Twelve_Hours --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1 --deployment-targets OrganizationalUnitIds='["ou-rcuk-1x5j1lwo", "ou-rcuk-slr5lh0a"]' --regions '["eu-west-1"]'
  2. 藉由執行 describe-stack-set-operation 命令以顯示更新操作的狀態和結果,確認您的堆疊集已成功更新。針對 --operation-id,使用您的 update-stack-set 命令所傳回的操作 ID。

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