假设我有许多基于同一模板创建的 CloudFormation 堆栈。对模板进行更改后,我希望所有堆栈都更新为模板的新版本。
我尝试通过创建资源组并使用 Systems Manager 运行自动化命令来做到这一点,但是:
- 资源类型
CloudFormation::Stack
未显示在 Systems Manager 中,这限制了我进行基于标签的筛选 - 我在 CloudFormation 中设置的标签不适用于堆栈,它们仅适用于这些堆栈中的资源。
还有其他方法可以批量更新堆栈吗?理想情况下,可以让我自动执行更新。
答案1
首先,在使用 CloudFormation 创建堆栈时,必须为所有相同类型的模板添加相同的标签。
1)之后,只需前往系统经理>应用程序管理>资源组。
2)选择:创建资源组。
3)开启群组类型, 选择基于标签。
4)开启分组标准, 在下面资源类型, 选择AWS::CloudFormation::Stack. 输入标签钥匙和价值你已经配置了你的堆栈。在我的例子中:堆栈式作为钥匙, 和CodePipeline-Template1作为价值。
5)定义您的组名并保存。
6) 保存资源组后,转到系统经理>应用程序管理>资源组. 选择您最近创建的资源组并按查看详情。 按执行自动化并选择AWS-UpdateCloudFormationStack选项。
7)不足执行自动化文档, 选择速率控制。
8)不足目标, 为了范围, 选择堆栈名称或 ID。 为了目标, 选择资源组. 并且对于资源组中,输入您最近创建的资源组名称。
9)不足输入参数,满足模板网址参数,其中包含您将更新堆栈的模板的 URL。并且LambdaAssumeRole参数以及用于代表您执行操作的角色。
10)按执行。