为具有服务托管权限的堆栈集管理自动部署 - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

为具有服务托管权限的堆栈集管理自动部署

启用自动部署后,StackSets 将自动部署到将来添加到目标组织或组织单位 (OU) 中的账户。启用保留堆栈后,当账户从目标 OU 中删除时,账户中的堆栈资源将被保留。您可以随时调整在创建堆栈集时指定的自动部署设置。

使用 AWS CloudFormation 控制台管理自动部署

  1. https://console.aws.amazon.com/cloudformation. 打开 AWS CloudFormation 控制台

  2. 从导航窗格中,选择 StackSets (堆栈集)

  3. StackSets (堆栈集) 页面上,选择您在创建具有服务托管权限的堆栈集过程中创建的堆栈集。

  4. 选择堆栈集后,从 Actions (操作) 菜单中选择 Edit automatic deployment (编辑自动部署)。自动部署在堆栈集级别设置。您无法为 OU、账户或区域选择性地调整自动部署。

    
                                选择堆栈集,然后从“Actions (操作)”菜单中选择“Edit automatic deployment (编辑自动部署)”。
  5. Edit automatic deployment (编辑自动部署) 模式中,管理 Automatic deployment (自动部署)Account removal behavior (账户删除行为) 设置。

    
                                编辑自动部署模式。
    注意

    选择 Retain stacks (保留堆栈) 后,堆栈实例将从堆栈集中移除,但堆栈及其相关资源将保留。资源保持当前状态,但不再是堆栈集的一部分。堆栈不能与现有堆栈集或新堆栈集重新关联。

  6. 选择保存

使用 AWS CLI 管理自动部署

  1. 打开 AWS CLI。

  2. 运行 update-stack-set 命令,指定您在创建具有服务托管权限的堆栈集过程中创建的堆栈集。自动部署在堆栈集级别设置。如果您在更新堆栈集时指定 --auto-deployment,则无法指定 --deployment-targets--regions

    aws cloudformation update-stack-set --stack-set-name StackSet_myApp --auto-deployment Enabled=false
  3. 使用作为步骤 2 中 update-stack-set 输出的一部分返回的 operation-id,运行 describe-stack-set-operation 以验证堆栈集是否已成功更新。

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

自动部署示例

在启用自动部署时,将账户添加到目标组织或 OU、从目标组织或 OU 中移除账户或在目标 OU 之间移动账户时,会触发这些自动部署。

例如,堆栈集 StackSet1us-east-1 区域中的 OU1 为目标 OU。堆栈集 StackSet2us-east-1 区域中的 OU2 为目标 OU。OU1 包含账户 AccountA

如果我们在启用自动部署的情况下,将 AccountAOU1 移至 OU2,StackSets 会自动运行删除操作以便从 AccountA 移除 StackSet1 实例,并在队列中添加将 StackSet2 实例添加到 AccountA 的创建操作。删除 StackSet1 实例后,将创建 StackSet2 实例。