【发布时间】:2022-03-14 01:09:37
【问题描述】:
我的团队当前的任务是开发一个能够从 Elastic Beanstalk 迁移的 ECS 集群。
由于我们的整个基础架构都在 Cloudformation 中,因此我们不得不将此实现与我们当前的模板相结合。
这个想法是让集群与底层基础架构分开创建,这些基础架构将在最终部署到集群的服务之间共享。
空 ECS 集群和服务(以及服务特定的所有资源)有一个不同的模板。
容量提供程序是使用(并附加到)服务创建的。据我所知,在创建集群后,Cloudformation 无法让容量提供程序作为集群的一部分出现。容量提供程序出现在服务上但不在集群上,服务最终没有资源来配置其任务。
我现在的解决方法是将 lambda 定义为自定义资源以调用 putClusterCapacityProvider 操作,并将空数组传递给 defaultCapacityProviderStrategy 属性。
这个策略很有效,但感觉有点太老套了。我错过了什么吗?集群创建后,还有其他方法可以让容量提供程序出现在集群上吗?
【问题讨论】:
-
它不应该让人觉得“hacky”。开发自定义资源以填补 AWS 在 CFN 中留下的所有空白。你现在有一个这样的案例。事实上,在与 CFN 合作时,开发服装资源是一种常态,因为 CFN 非常有限。
-
是的,你是对的,也许 hacky 不是正确的词。但感觉就像是容量提供者工作的基本要素需要定制。
标签: amazon-web-services amazon-cloudformation amazon-ecs