更新堆栈集 - Amazon CloudFormation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

更新堆栈集

您可以在 Amazon Web Services Management Console中更新堆栈集,也可以在 Amazon CLI 中使用 Amazon CloudFormation 命令进行更新。在本演练中,我们将传输通道配置的默认快照传输频率从 24hours 更改为 12hours

要覆盖特定堆栈实例 的参数值,请参阅 覆盖堆栈实例上的参数

使用 Amazon CloudFormation 控制台更新堆栈集

  1. 打开 Amazon CloudFormation 控制台,地址:https://console.aws.amazon.com/cloudformation

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

  3. 在 StackSets(堆栈集)页面上,选择您在 创建堆栈集 中创建的堆栈集。在本演练中,我们创建了名为 my-awsconfig-stackset 的堆栈集。

  4. 选定堆栈集之后,从 Actions (操作) 菜单中选择 Edit StackSet details (编辑堆栈集详细信息)

    
                            在堆栈集页面中更新堆栈集
  5. Choose a template (选择一个模板) 页面上,选择是要更新当前模板、指定另一个模板的 S3 URL,还是将新模板上传到 Amazon CloudFormation。在本演练中,我们将使用当前模板。选择 Use current template (使用当前模板),然后选择 Next (下一步)

  6. Specify StackSet details (指定堆栈集详细信息) 页上,修改参数值并指定部署目标。

    1. [自行管理权限] 对于 Deployment targets (部署目标),选择 Deploy stacks in accounts (在账户中部署堆栈)。在文本框中粘贴您的目标账号,并使用逗号分隔多个号码。

      [服务托管权限] 对于 Deployment targets (部署目标),请选择您组织中的、要向其部署的账户。

    2. 选择区域

    3. Frequency (频率) 参数的值从 24hours (24 小时) 更改为 12hours (12 小时)

      有关指定 Amazon Config 所用值的此参数及其他参数的更多信息,请参阅《Amazon Config 开发人员指南》中的使用控制台设置 Amazon Config

      请不要更改其他参数。在本演练中,我们不配置 Amazon SNS 更新。

      完成后选择下一步

  7. Configure StackSet options (配置堆栈集选项) 页面上,无需执行任何更改,但您可以根据需要在此处更新、删除或添加新标签。有关如何在 Amazon 中使用标签的更多信息,请参阅《Amazon Billing and Cost Management 用户指南》中的使用成本分配标签。您还可以管理执行配置以指定 StackSets 是否并发执行非冲突操作并将冲突操作排队。冲突操作结束后,StackSets 将按请求顺序启动排队的操作。

    注意

    如果已有正在运行或已排队的操作,StackSets 会将所有传入操作排队,即使这些操作没有冲突。

    当堆栈集正在运行或排队操作时,您无法修改堆栈集的执行配置。

    Permissions(权限)保持不变,然后选择 Next(下一步)。

  8. Set deployment options(设置部署选项)页面上,为 Maximum concurrent accounts(最大并发账户数)保留默认值 1By number(按数量)。保留 Failure tolerance 的默认值 0,并保留 By number 默认选项。选择下一步

    注意

    您无法在此处更改账户和区域;即,您无法将堆栈集更改部署到某些账户和区域的堆栈中,另一些则可以。

  9. Review 页面上,查看您的选择和堆栈集的属性。要进行更改,请在要更改属性的区域的右上角选择 Edit。在更新堆栈集之前,您必须先选中功能区域中的复选框,以确认您使用堆栈集更新的某些资源可能需要新的 IAM 资源和权限。有关可能需要的权限的更多信息,请参阅本指南中的确认 Amazon CloudFormation 模板中的 IAM 资源。当您准备好创建堆栈集时,选择 Submit(提交)。

    Amazon CloudFormation 开始对您的堆栈应用更新,然后显示堆栈集详细信息的操作选项卡

  10. 您可在操作选项卡上查看更新操作的进度和状态。您应该会在 Parameter(参数)选项卡上看到已更新的 Frequency(频率)参数。

使用 Amazon CLI 更新您的堆栈集

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

--call-as DELEGATED_ADMIN

运行 update-stack-set Amazon CLI 命令以更改堆栈集。在本演练中,我们将更新 MaximumExecutionFrequency 参数的值。有关用于创建或更新 Amazon Config 规则的参数名称和值的更多信息,请参阅 Amazon CLI 参考中的 put-config-rule。要更改模板参数值,请添加 --parameters 参数。有关您可以为 --parameters 指定的值的更多信息,请参阅《Amazon CloudFormation API 参考》中的 Parameter 以及《Amazon CLI 命令参考》中的 update-stack

在此处显示的示例命令中,我们使用 --parameters 更新堆栈集;具体而言,我们将传输通道配置的默认快照传输频率从 TwentyFour_Hours 更改为 Twelve_Hours。因为我们仍在使用当前模板,所以添加 --use-previous-template 参数。

  1. 运行以下命令。对于 stack set name,指定堆栈集名称 my-awsconfig-stackset

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

    注意

    MaxConcurrentCount 的值依赖于 FailureToleranceCount 的值。MaxConcurrentCount 最多比 FailureToleranceCount 多 1。

    [自行管理权限] 提供您希望更新到目标的账户 ID。

    aws cloudformation update-stack-set --stack-set-name my-awsconfig-stackset --use-previous-template --parameters ParameterKey=MaximumExecutionFrequency,ParameterValue=TwentyFour_Hours\\,Twelve_Hours --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1 --accounts '["account_ID_1","account_ID_2"]'

    [服务托管权限] 提供您希望更新到目标的组织(根)ID、OU ID 或 Amazon Organizations 账户 ID。

    aws cloudformation update-stack-set --stack-set-name my-awsconfig-stackset --use-previous-template --parameters ParameterKey=MaximumExecutionFrequency,ParameterValue=TwentyFour_Hours\\,Twelve_Hours --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1 --deployment-targets OrganizationalUnitIds='["ou-rcuk-1x5j1lwo", "ou-rcuk-slr5lh0a"]' --regions '["eu-west-1"]'
  2. 通过运行 describe-stack-set-operation 命令显示更新操作的状态和结果,来验证是否已成功更新堆栈集。对于 --operation-id,使用由您的 update-stack-set 命令返回的操作 ID。

    aws cloudformation describe-stack-set-operation --operation-id operation_ID