为 Amazon Organizations 中的堆栈集启用或禁用自动部署
将新的 Amazon Organizations 账户添加到目标组织或组织单元(OU)后,CloudFormation 会自动将额外的堆栈部署到这些账户。您可以启用自动部署,并选择当账户从目标 OU 移出时,是删除还是保留堆栈及其相关资源。对于使用服务托管权限的堆栈集,这些设置可以随时修改。
自动部署的工作原理
启用自动部署后,当账户添加到目标组织或 OU、从目标组织或 OU 移除或在目标 OU 之间移动时,都会触发自动部署。
例如,考虑以 us-east-1 区域中的 OU1 为目标的 StackSet1 和以 us-east-1 区域中的 OU2 为目标的 StackSet2。OU1 包含 AccountA。
如果在启用自动部署的情况下将 AccountA 从 OU1 移至 OU2,CloudFormation 会自动运行删除操作,从 AccountA 中移除 StackSet1 堆栈,并在队列中排入一个将 StackSet2 堆栈添加到 AccountA 的创建操作。
注意事项
以下是使用自动部署时的注意事项:
-
自动部署功能在 StackSet 级别启用。您无法为 OU、账户或区域选择性地调整自动部署。
-
覆盖的参数值仅适用于当前已在目标 OU 及其子 OU 中的账户。将来添加到目标 OU 及其子 OU 的账户将使用 StackSet 默认值,而不使用覆盖的值。
-
自动部署不考虑账户级别的目标筛选器。如果您的目标是特定账户,而且启用了自动部署,StackSet 将继续部署到已部署组织中任何新添加的账户。要防止部署到新添加的账户,请禁用自动部署。
-
依赖项管理:每个 StackSet 最多定义 10 个依赖项,每个账户最多定义 100 个依赖项。例如,如果您有五个 StackSet,且每个都有五个依赖项,则您有 25 个依赖项计入 100 个依赖项上限。您可以通过服务配额控制台
请求增加限额。删除 StackSet 或停用 Organizations 时,依赖项将被移除。 -
建议在使用自动部署时启用托管执行。托管执行将允许在多个目标账户中进行的自动部署操作在 StackSet 中同时执行,从而提高处理速度,对于规模较大的 Organizations 尤其如此。
启用或禁用自动部署(控制台)
启用或禁用自动部署
-
登录到 Amazon Web Services 管理控制台 并打开 Amazon CloudFormation 控制台 https://console.aws.amazon.com/cloudformation
。 -
在屏幕顶部的导航栏中,选择您在其中创建了 StackSet 的 Amazon Web Services 区域。
-
从导航窗格中,选择 StackSets。
-
在 StackSet 页面上,选择要更新的 StackSet 名称旁边的选项。
-
从右上角的操作菜单中选择编辑自动部署。
-
在打开的对话框中,执行以下操作:
-
对于自动部署,选择激活或停用。
-
对于账户移除行为,请选择删除堆栈或保留堆栈。保留的资源会保持当前状态,但不再是 StackSet 的一部分。
-
对于 StackSet 依赖项,添加依赖的 StackSet ARN,最多保持在 10 个依赖项内。
-
-
选择保存。
启用或禁用自动部署(Amazon CLI)
启用或禁用自动部署
-
使用带
--auto-deployment选项的 update-stack-set 命令。以下命令可启用自动部署。
aws cloudformation update-stack-set --stack-set-namemy-stackset\ --use-previous-template --auto-deployment Enabled=true,RetainStacksOnAccountRemoval=true,DependsOn=ARN1,ARN2或者,要禁用自动部署,可指定
Enabled=false作为--auto-deployment选项的值,如下例所示。aws cloudformation update-stack-set --stack-set-namemy-stackset\ --use-previous-template --auto-deployment Enabled=false -
使用 update-stack-set 输出中返回的操作 ID,运行 describe-stack-set-operation 来验证 StackSet 是否已成功更新。
aws cloudformation describe-stack-set-operation --operation-idoperation_ID