将堆栈添加到 CloudFormation 堆栈集
创建 StackSet 时,可以为 StackSet 创建堆栈。利用 CloudFormation,您还能在创建 StackSet 后的任何时间为其他账户和区域添加更多堆栈。您可以使用 CloudFormation 控制台或 Amazon CLI 添加堆栈。
将堆栈添加到 StackSet(控制台)
将堆栈添加到 StackSet
登录到 Amazon Web Services Management Console 并打开 Amazon CloudFormation 控制台 https://console.aws.amazon.com/cloudformation
。 -
在屏幕顶部的导航栏中,选择您在其中创建了 StackSet 的 Amazon Web Services 区域。
-
从导航窗格中,选择 StackSets。在 StackSet 页面上,选择您创建的 StackSet。
-
选择 StackSet 后,从操作菜单中选择将堆栈添加到 StackSet。
-
在设置部署选项页面上,执行以下操作:
-
对于将堆栈添加到 StackSet,选择部署新堆栈。
-
接下来,根据 StackSet 的权限配置执行以下操作:
-
[自行管理权限] 对于账户、部署位置,选择在账户中部署堆栈。在文本框中粘贴您的目标账号,并使用逗号分隔多个号码。
-
[服务管理权限] 对于部署目标,请执行以下操作之一:
-
选择 Deploy to organization (部署到组织) 可部署到您组织中的所有账户。
-
选择 Deploy to organizational units (OUs) (部署到组织单位 (OU)) 可部署到特定 OU 中的所有账户。选择 Add another OU (添加其他 OU),然后将目标 OU ID 粘贴到文本框中。对每个新目标 OU 重复执行此操作。CloudFormation 还可以所选目标的任何子 OU 为目标。
注意
如果您添加的 OU 已是 StackSet 的目标,同时该 OU 中有任何账户尚未具有 StackSet 中的堆栈(例如,在创建 StackSet 后添加到 OU 并且已禁用自动部署的账户),则 CloudFormation 会在该账户中创建新的堆栈。
-
-
-
对于指定区域,指定要部署到在上一步中所指定目标账户中的哪个 Amazon Web Services 区域。默认情况下,CloudFormation 将在第一个区域内的指定账户中部署堆栈,然后移到下一个区域,依此类推,前提是区域的部署失败不超过指定的容错能力。
-
对于部署选项,请执行以下操作:
-
对于最大并发账户数,请指定并发处理的账户数量。
-
在容错中,请指定每个区域允许的账户失败次数上限。达到此次数限制后,该操作将停止,不会继续到其他区域。
-
对于区域并发,请选择处理区域的方式:顺序(一次处理一个区域)或并行(并发处理多个区域)。
-
对于并发模式,请选择在操作执行期间的并发行为方式。
-
严格容错:操作失败时降低账户并发级别,保持在容错 +1 范围内。
-
软容错 – 即使失败,仍保持您指定的并发级别(最大并发账户数的值)。
-
-
-
选择下一步。
-
-
在 Specify Overrides (指定覆盖) 页面上,将属性值保留为指定值。您不会覆盖您要创建的堆栈的任何属性值。选择下一步。
-
在审核页面上,审核您的选择。要进行更改,请在相关部分选择编辑。
-
如果准备继续,则请选择提交。
CloudFormation 会开始创建堆栈。选择提交后会打开 StackSet 详细信息页面,可以在其中查看 StackSet 中的堆栈创建进度和状态。完成后,新堆栈应该会在堆栈实例选项卡上列出。
将堆栈添加到 StackSet(Amazon CLI)
注意
担任委派管理员时,您必须在命令中包含 --call-as
DELEGATED_ADMIN
。
将堆栈添加到具有自行管理权限的 StackSet
使用 create-stack-instances CLI 命令。在 --accounts
选项中,请提供您要为其创建堆栈的账户 ID。
aws cloudformation create-stack-instances --stack-set-name
my-stackset
\ --accountsaccount_id
--regionseu-west-1 us-west-2
将堆栈添加到具有服务托管权限的 StackSet
使用 create-stack-instances CLI 命令。在 --deployment-targets
选项中,请提供要为其创建堆栈的组织(根)ID 或 OU ID。有关针对特定账户的命令示例,请参阅创建具有服务管理权限的 StackSet(Amazon CLI)。
aws cloudformation create-stack-instances --stack-set-name
my-stackset
\ --deployment-targets OrganizationalUnitIds=ou-rcuk-r1qi0wl7
--regionseu-west-1 us-west-2
注意
如果您添加的 OU 已是 StackSet 的目标,同时该 OU 中有任何账户尚未具有 StackSet 中的堆栈(例如,在创建 StackSet 后添加到 OU 并且已禁用自动部署的账户),则 CloudFormation 会在该账户中创建新的堆栈。