如何在保持参数不变的情况下批量更新 CloudFormation 堆栈?

如何在保持参数不变的情况下批量更新 CloudFormation 堆栈?

假设我有许多基于同一模板创建的 CloudFormation 堆栈。对模板进行更改后,我希望所有堆栈都更新为模板的新版本。

我尝试通过创建资源组并使用 Systems Manager 运行自动化命令来做到这一点,但是:

  1. 资源类型CloudFormation::Stack未显示在 Systems Manager 中,这限制了我进行基于标签的筛选
  2. 我在 CloudFormation 中设置的标签不适用于堆栈,它们仅适用于这些堆栈中的资源。

还有其他方法可以批量更新堆栈吗?理想情况下,可以让我自动执行更新。

答案1

首先,在使用 CloudFormation 创建堆栈时,必须为所有相同类型的模板添加相同的标签。

1)之后,只需前往系统经理>应用程序管理>资源组

2)选择:创建资源组

3)开启群组类型, 选择基于标签

4)开启分组标准, 在下面资源类型, 选择AWS::CloudFormation::Stack. 输入标签钥匙价值你已经配置了你的堆栈。在我的例子中:堆栈式作为钥匙, 和CodePipeline-Template1作为价值

5)定义您的组名并保存。

6) 保存资源组后,转到系统经理>应用程序管理>资源组. 选择您最近创建的资源组并按查看详情。 按执行自动化并选择AWS-UpdateCloudFormationStack选项。

7)不足执行自动化文档, 选择速率控制

8)不足目标, 为了范围, 选择堆栈名称或 ID。 为了目标, 选择资源组. 并且对于资源组中,输入您最近创建的资源组名称。

9)不足输入参数,满足模板网址参数,其中包含您将更新堆栈的模板的 URL。并且LambdaAssumeRole参数以及用于代表您执行操作的角色。

10)按执行

答案2

我在 CF 方面经验不足。也许可以帮助嵌套堆栈。https://docs.aws.amazon.com/en_us/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html

相关内容