AWS CloudFormation
User Guide (API Version 2010-05-15)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

创建新堆栈集

您可以在 AWS 管理控制台 中或通过在 AWS CLI 中使用 AWS CloudFormation 命令来创建堆栈集。

使用 AWS 管理控制台 创建堆栈集

  1. 通过以下网址打开 AWS CloudFormation 控制台:https://console.amazonaws.cn/cloudformation

  2. 在页面顶部,选择 StackSets,然后选择 Create stack set

     StackSets 主页
  3. Create stack set 向导的 Select template 页面上,选择 Select a sample template from the following templates

     “StackSets Select Template”向导页面
  4. 选择 Enable AWS Config 示例模板,然后选择 Next

     StackSets Enable AWS Config 示例模板
  5. 在向导的 Specify details 页面上,提供以下信息。

    1. 提供堆栈集的名称。堆栈集名称必须以字母字符开头,并且只能包含字母、数字和连字符。在本演练中,我们使用名称 my-awsconfig-stackset

       “Specify Details”页面,第一部分
    2. 系统将提示您为 AWS Config 使用的参数指定值。有关这些参数的更多信息,请参阅 AWS Config 开发人员指南 中的使用控制台设置 AWS Config。在本演练中,我们将保留所有 AWS Config 参数的默认设置。

  6. Delivery Channel Configuration 区域中,您可以配置更新和通知的传输通道。有关 AWS Config 中的传输通道的更多信息,请参阅 AWS Config 开发人员指南 中的管理传输通道。在本演练中,我们将保留此区域中的默认设置。

  7. Delivery Notifications 区域中,您可以基于日志内容通过电子邮件配置 Amazon Simple Notification Service (SNS) 更新。在本演练中,我们不配置 Amazon SNS 更新。

  8. 在您为 AWS Config 指定参数后,请选择 Next

  9. Set deployment options 页面上,提供账户和要在其中部署堆栈集内的堆栈的区域。AWS CloudFormation 在第一个区域内的指定账户中部署堆栈,然后移到下一个区域,依此类推,前提是区域的部署失败不超过指定的容错能力。

     “Set Deployment Options”页面
    1. Accounts 区域中,选择 Deploy stacks in accounts。在文本框中粘贴您的目标账号,并使用逗号分隔多个号码。

    2. Regions 区域中,选择 美国西部(俄勒冈)区域,然后选择 Add。对 美国东部(弗吉尼亚北部)地区 重复此操作。美国西部(俄勒冈)区域 应是 Deployment order 框中的第一个项。

    3. Preferences 区域中,为 Maximum concurrent accounts 保留默认值 1By number。这意味着,AWS CloudFormation 一次仅在一个账户中部署您的堆栈。保留 Failure tolerance 的默认值 0,并保留 By number 默认选项。这意味着,只要您指定区域之一中有一个堆栈部署失败,AWS CloudFormation 就会停止当前区域中的部署并取消剩余区域中的部署。选择 Next

  10. Tags 页面上,通过指定键值对来添加标签。在本演练中,我们创建一个名为 Stage 的标签,其值为 Test。您应用于堆栈集的标签将应用于由您的堆栈创建的所有资源。有关如何在 AWS 中使用标签的更多信息,请参阅 AWS Billing and Cost Management 用户指南 中的使用成本分配标签。在指定键值对后,选择 + 以保存标签。选择 Next

     “Tags”页面
  11. Review 页面上,查看您的选择和堆栈集的属性。要进行更改,请在要更改属性的区域中选择 Edit。您必须先选中 Capabilities 区域中的复选框以确认您使用堆栈集创建的一些资源可能需要新的 IAM 资源和权限,然后才能创建堆栈集。有关可能需要的权限的更多信息,请参阅本指南中的确认 AWS CloudFormation 模板中的 IAM 资源。当您准备好创建堆栈集时,选择 Create

     确认所需功能
  12. AWS CloudFormation 开始创建您的堆栈集。在您选择 Create 时打开的“Properties”页面中查看在您的堆栈集中创建堆栈的进度和状态。

使用 AWS CLI 创建堆栈集

当您使用 AWS CLI 命令创建堆栈集时,运行两个单独的命令:create-stack-set (用于上传您的模板和创建堆栈集容器) 和 create-stack-instances (用于在您的堆栈集中创建堆栈)。首先,运行 AWS CLI 命令 create-stack-set 以上传启用了 AWS Config 的示例 AWS CloudFormation 模板,然后开始堆栈集创建。

  1. 打开 AWS CLI。

  2. 运行以下命令。对于 --template-url 参数,提供您存储模板用的 Amazon S3 存储桶的 URL。在本演练中,我们使用 my-awsconfig-stackset 作为 --stack-set-name 参数的值。

    aws cloudformation create-stack-set --stack-set-name my-awsconfig-stackset --template-url https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSConfig.yml
  3. 在您的 create-stack-set 命令完成后,运行 list-stack-sets 命令以查看您的堆栈集是否已创建。您应在结果中看到新的堆栈集。

    aws cloudformation list-stack-sets
  4. 运行 create-stack-instances AWS CLI 命令以将堆栈实例添加到堆栈集中。在本演练中,我们使用 us-west-2us-east-1 作为 --regions 参数的值。

    通过在 --operation-preferences 参数中将 FailureToleranceCount 设置为 0 以及将 MaxConcurrentCount 设置为 1 来设置容错能力和最大并发账户数,如以下示例中所示。要改为应用百分比,请使用 FailureTolerancePercentageMaxConcurrentPercentage。在本演练中,我们使用的是计数而不是百分比。

    aws cloudformation create-stack-instances --stack-set-name my-awsconfig-stackset --accounts '["account_ID_1","account_ID_2"]' --regions '["region_1","region_2"]' --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1

    重要

    等到一个操作完成,然后再开始另一个操作。一次只能运行一个操作。

  5. 验证是否已成功创建堆栈实例。根据在步骤 4 的输出中返回的 operation-id 运行 DescribeStackSetOperation

    aws cloudformation describe-stack-set-operation --stack-set-name my-awsconfig-stackset --operation-id operation_ID