为使用服务托管权限的 CloudFormation StackSets 管理自动部署 - AWS CloudFormation

为使用服务托管权限的 CloudFormation StackSets 管理自动部署

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

注意

覆盖的参数值仅适用于当前已在目标 OU 及其子 OU 中的账户。将来添加到目标 OU 及其子 OU 的账户将使用堆栈集默认值,而不使用覆盖的值。

管理自动部署(控制台)

  1. 登录到 AWS Management Console 并打开 AWS CloudFormation 控制台 https://console.aws.amazon.com/cloudformation

  2. 在屏幕顶部的导航栏中,选择您在其中创建了堆栈集的 AWS 区域。

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

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

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

  6. 编辑自动部署模式中,管理自动部署账户移除行为设置。

    注意

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

  7. 选择保存

管理自动部署(AWS CLI)

  1. 使用 update-stack-set CLI 命令,指定在创建 StackSets(服务托管权限)中创建的堆栈集。自动部署在堆栈集级别设置。如果您在更新堆栈集时指定 --auto-deployment,则无法指定 --deployment-targets--regions

    aws cloudformation update-stack-set --stack-set-name my-stackset --auto-deployment Enabled=false
  2. 使用作为步骤 2 中 update-stack-set 输出的一部分返回的操作 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 的创建操作。