【发布时间】:2021-06-11 14:29:57
【问题描述】:
我正在使用 CloudFormation 创建一个通用堆栈模板,但遇到了一个相当烦人的循环引用。
总体要求:
-
我希望能够预置(很多其他的东西,但主要是)一个 ECS 集群服务,它使用容量提供程序自动扩展,容量提供程序使用自动扩展组,自动扩展组使用启动模板。
-
我不想要静态资源名称。如果由于更新而必须重新创建资源并且该特定资源必须具有唯一名称,则会导致问题。
问题:
如果启动模板“知道集群名称”(通过 UserData),服务任务就会陷入 PROVISIONING 状态。
所以我们有了第一个依赖链:
启动模板
但是Cluster有一个依赖链:
集群
因此,我们有一个循环引用:Cluster Launch Template
——
我能想到的解决这个问题的一种方法是在另一个资源的名称(位于此依赖链之外,例如目标组)的名称中添加一个后缀作为集群的名称;这样,它就不是静态的,而且还删除了循环引用。
我的问题是:有没有更好的方法?
感觉应该有一个资源,集群可以订阅,ec2实例可以发布到,这将消除循环依赖以及分配资源名称的需要。
【问题讨论】:
标签: amazon-web-services amazon-cloudformation