更新堆栈集
您可以在 Amazon Web Services Management Console中更新堆栈集,也可以在 Amazon CLI 中使用 Amazon CloudFormation 命令进行更新。在本演练中,我们将传输通道配置的默认快照传输频率从 24hours 更改为 12hours。
要覆盖特定堆栈实例 的参数值,请参阅覆盖堆栈实例上的参数。
使用 Amazon CloudFormation 控制台更新堆栈集
从 https://console.amazonaws.cn/cloudformation
打开 Amazon CloudFormation 控制台。 -
从导航窗格中,选择 StackSets (堆栈集)。
-
在 StackSets 页面上,选择您在 创建堆栈集 中创建的堆栈集。在本演练中,我们创建了名为
my-awsconfig-stackset的堆栈集。 -
选定堆栈集之后,从 Actions (操作) 菜单中选择 Edit StackSet details (编辑堆栈集详细信息)。
-
在 Choose a template (选择一个模板) 页面上,选择是要更新当前模板、指定另一个模板的 S3 URL,还是将新模板上传到 Amazon CloudFormation。在本演练中,我们将使用当前模板。选择 Use current template (使用当前模板),然后选择 Next (下一步)。
-
在 Specify StackSet details (指定堆栈集详细信息) 页上,修改参数值并指定部署目标。
-
[自行管理权限] 对于 Deployment targets (部署目标),选择 Deploy stacks in accounts (在账户中部署堆栈)。在文本框中粘贴您的目标账号,并使用逗号分隔多个号码。
[服务托管权限] 对于 Deployment targets (部署目标),请选择您组织中的、要向其部署的账户。
-
将 Frequency (频率) 参数的值从 24hours (24 小时) 更改为 12hours (12 小时)。
有关指定 Amazon Config 所用值的此参数及其他参数的更多信息,请参阅 Amazon Config 开发人员指南中的使用控制台设置 Amazon Config。
请不要更改其他参数。在本演练中,我们不配置 Amazon SNS 更新。
完成后选择 Next (下一步)。
-
-
在 Configure StackSet options (配置堆栈集选项) 页面上,无需执行任何更改,但您可以根据需要在此处更新、删除或添加新标签。有关如何在 Amazon 中使用标签的更多信息,请参阅 Amazon Billing and Cost Management 用户指南 中的使用成本分配标签。
将权限保持不变,然后选择 Next (下一步)。
-
在 Set deployment options 页面上,为 Maximum concurrent accounts 保留默认值 1 和 By number。保留 Failure tolerance 的默认值 0,并保留 By number 默认选项。选择下一步。
注意 您无法在此处更改账户和区域;即,您无法将堆栈集更改部署到某些账户和区域(而不是其他账户和区域)的堆栈中。
-
在 Review 页面上,查看您的选择和堆栈集的属性。要进行更改,请在要更改属性的区域的右上角选择 Edit。在更新堆栈集之前,您必须先选中功能区域中的复选框,以确认您使用堆栈集更新的某些资源可能需要新的 IAM 资源和权限。有关可能需要的权限的更多信息,请参阅本指南中的确认Amazon CloudFormation 模板中的 IAM 资源。当您准备好创建堆栈集时,选择 Submit (提交)。
Amazon CloudFormation 开始对您的堆栈应用更新,然后显示堆栈集详细信息的操作选项卡
-
您可在操作选项卡上查看更新操作的进度和状态。您应该会在参数选项卡上看到已更新的频率参数。
使用 Amazon CLI 更新您的堆栈集
担任委托管理员时,您必须在每次运行 StackSets 命令时将 --call-as 参数设置为 DELEGATED_ADMIN。
--call-asDELEGATED_ADMIN
运行 update-stack-set Amazon CLI 命令以更改堆栈集。在本演练中,我们将更新 MaximumExecutionFrequency 参数的值。有关用于创建或更新 Amazon Config 规则的参数名称和值的更多信息,请参阅 Amazon CLI 参考中的 put-config-rule。要更改模板参数值,请添加 --parameters 参数。有关您可以为 --parameters 指定的值的更多信息,请参阅 Amazon CloudFormation API 参考中的参数update-stack
在此处显示的示例命令中,我们使用 --parameters 更新堆栈集;具体而言,我们将传输通道配置的默认快照传输频率从 TwentyFour_Hours 更改为 Twelve_Hours。因为我们仍在使用当前模板,所以添加 --use-previous-template 参数。
-
运行以下命令。对于
stack set name,指定堆栈集名称my-awsconfig-stackset。通过在
FailureToleranceCount参数中将0设置为MaxConcurrentCount以及将1设置为--operation-preferences来设置容错能力和最大并发账户数,如以下示例中所示。要改为应用百分比,请使用FailureTolerancePercentage或MaxConcurrentPercentage。在本演练中,我们使用的是计数而不是百分比。注意 MaxConcurrentCount的值依赖于FailureToleranceCount的值。MaxConcurrentCount最多比FailureToleranceCount多 1。[自行管理权限] 提供您希望更新到目标的账户 ID。
Amazon CloudFormation update-stack-set --stack-set-namemy-awsconfig-stackset--use-previous-template --parameters ParameterKey=MaximumExecutionFrequency,ParameterValue=TwentyFour_Hours\\,Twelve_Hours--operation-preferencesFailureToleranceCount=0,MaxConcurrentCount=1--accounts[服务托管权限] 提供您希望更新到目标的组织(根)ID、OU ID 或 Amazon Organizations 账户 ID。
Amazon CloudFormation update-stack-set --stack-set-namemy-awsconfig-stackset--use-previous-template --parameters ParameterKey=MaximumExecutionFrequency,ParameterValue=TwentyFour_Hours\\,Twelve_Hours--operation-preferencesFailureToleranceCount=0,MaxConcurrentCount=1--deployment-targets OrganizationalUnitIds='["ou-rcuk-1x5j1lwo", "ou-rcuk-slr5lh0a"]' --regions '["eu-west-1"]' -
通过运行
describe-stack-set-operation命令显示更新操作的状态和结果,来验证是否已成功更新堆栈集。对于--operation-id,使用由您的update-stack-set命令返回的操作 ID。Amazon CloudFormation describe-stack-set-operation --operation-idoperation_ID