将堆栈实例添加到 CloudFormation StackSets - AWS CloudFormation

将堆栈实例添加到 CloudFormation StackSets

在创建堆栈集时,可以为堆栈集创建堆栈。利用 CloudFormation,您还能在创建堆栈集后的任何时间为其他账户和区域添加更多堆栈。您可以使用 CloudFormation 控制台或 AWS CLI 添加堆栈实例。

将堆栈实例添加到堆栈集(控制台)

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

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

  3. 从导航窗格中,选择 StackSets (堆栈集)。在 StackSets 页面上,选择您创建的堆栈集。

  4. 选定堆栈集后,从 Actions(操作)菜单中选择 Add stacks to StackSet(将堆栈添加到堆栈集)。

  5. 设置部署选项页面上,执行以下操作:

    1. 对于 Add stacks to stack set(将堆栈添加到堆栈集),选择 Deploy new stacks(部署新堆栈)。

    2. 接下来,根据堆栈集的权限配置执行以下操作:

      • [自行管理权限] 对于账户部署位置,选择在账户中部署堆栈。在文本框中粘贴您的目标账号,并使用逗号分隔多个号码。

      • [服务管理权限] 对于部署目标,请执行以下操作之一:

        • 选择 Deploy to organization (部署到组织) 可部署到您组织中的所有账户。

        • 选择 Deploy to organizational units (OUs) (部署到组织单位 (OU)) 可部署到特定 OU 中的所有账户。选择 Add another OU (添加其他 OU),然后将目标 OU ID 粘贴到文本框中。对每个新目标 OU 重复执行此操作。堆栈集还可以所选目标的任何子 OU 为目标。

        注意

        如果您添加堆栈集已确定目标的 OU,则 StackSets 会在 OU 中尚未具有堆栈集中堆栈实例的任何账户中创建新堆栈实例(例如,在创建堆栈集且已禁用自动部署后添加到 OU 的账户)。

    3. 对于指定区域,指定要部署到在上一步中所指定目标账户中的哪个 AWS 区域。默认情况下,CloudFormation 将在第一个区域内的指定账户中部署堆栈,然后移到下一个区域,依此类推,前提是区域的部署失败不超过指定的容错能力。

    4. 对于 Deployment options (部署选项)

      • 对于最大并发账户数,请根据需要修改最大并发账户数。

      • 对于容错,根据需要修改容错。

      • 对于区域并发,根据需要修改区域并发。

      • 对于并发模式,根据需要修改并发模式。

    5. 选择下一步

  6. Specify Overrides (指定覆盖) 页面上,将属性值保留为指定值。您不会覆盖您要创建的堆栈的任何属性值。选择下一步

  7. 审核页面上,审核您的选择。要进行更改,请在相关部分选择编辑

  8. 如果准备继续,则请选择提交

    CloudFormation 开始创建您的堆栈实例。在选择 Submit (提交) 时打开的堆栈集详细信息页面中查看堆栈集中堆栈实例的创建进度和状态。完成后,您的新堆栈实例应该会在 Stack instances (堆栈实例) 选项卡上列出。

将堆栈实例添加到堆栈集(AWS CLI)

担任委托管理员时,您必须在每次运行 StackSets 命令时将 --call-as 选项设置为 DELEGATED_ADMIN

--call-as DELEGATED_ADMIN
  • 使用 create-stack-instances CLI 命令。

    [自行管理权限] 对于 --accounts 选项,提供您要为其创建堆栈实例的账户 ID。

    aws cloudformation create-stack-instances --stack-set-name my-awsconfig-stackset \ --accounts '["account_id"]' --regions '["eu-west-1", "us-west-2"]'

    [服务管理权限] 对于 --deployment-targets 选项,提供要为其创建堆栈实例的组织(根)ID 或 OU ID。

    aws cloudformation create-stack-instances --stack-set-name my-stackset \ --deployment-targets OrganizationalUnitIds='["ou-rcuk-r1qi0wl7"]' --regions '["eu-west-1", "us-west-2"]'
    注意

    如果您添加堆栈集已确定目标的 OU,则 StackSets 会在 OU 中尚未具有堆栈集中堆栈实例的任何账户中创建新堆栈实例(例如,在创建堆栈集且已禁用自动部署后添加到 OU 的账户)。