AWS ECS 集群容量提供程序

Posted

技术标签:

【中文标题】AWS ECS 集群容量提供程序【英文标题】:AWS ECS cluster Capacity Provider 【发布时间】:2020-12-11 07:45:37 【问题描述】:

我正在使用此 cloudformation 模板为 ECS 集群创建容量提供程序,其中包含在 ecs 容量提供程序中指定的自动缩放组:

"ECSCapacityProvider": 
            "Type": "AWS::ECS::CapacityProvider",
            "Properties": 
                "AutoScalingGroupProvider": 
                    "AutoScalingGroupArn":  "Ref" : "AutoScalingGroup" 
                
            ,
            "DependsOn" : "AutoScalingGroup" 
        ,
        "DRCluster": 
            "Type": "AWS::ECS::Cluster",
            "Properties": 
                "ClusterName":  "Ref" : "WindowsECSCluster" ,
                "CapacityProviders" : "ECSCapacityProvider",
                "Tags": [
                    
                        "Key": "environment",
                        "Value": "dr"
                    
                ]
            ,
            "DependsOn" : "ECSCapacityProvider" 
        

但是在创建堆栈时,它导致了以下错误:

Model validation failed (#/CapacityProviders: expected type: JSONArray, found: String)

我找不到容量提供者的适当文档。我正在使用它将 Auto Scaling 组附加到集群,我希望这是这样做的正确方法。我是 cloudformation 的新手,非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

CapacityProviders 是一个字符串列表,而不是像现在这样的String

"CapacityProviders" : "ECSCapacityProvider",

因此,在您DRCluster 中,您可以改用以下内容:

"CapacityProviders" : [ "Ref": "ECSCapacityProvider" ],

【讨论】:

以上是关于AWS ECS 集群容量提供程序的主要内容,如果未能解决你的问题,请参考以下文章

AWS ECS 容量提供商

aws - ECS 容量提供者权限

ECS 容量提供程序是不是实际适用于每个 ec2 实例的一项任务?

反应应用程序未加载到 AWS ECS 集群中?

在 Terraform 销毁期间,terraform 在销毁 Auto-scaling 组之前尝试销毁 ECS 集群并且失败了

在 AWS ECS EC2 集群中运行 docker 镜像