如何使用云形态动态命名ECS群集?

时间:2015-11-20 20:14:25

标签: amazon-cloudformation

使用硬编码名称轻松创建群集MyCluster

"MyCluster": {
  "Type": "AWS::ECS::Cluster"
}

但是,我想要一个动态名称,但也引用了命名资源。像这样的集群名称将是堆栈名称:

"NamedReferenceButNotClusterName": {
    "Type": "AWS::ECS::Cluster",
    "Properties": {
        "Name": {"Ref": "AWS::StackName"}   <-- Name property isnt allowed
    }
},
"ecsService": {
    "Type": "AWS::ECS::Service",
    "DependsOn": [
        {"Ref": "NamedReferenceButNotClusterName"}  <-- not sure if I can even do this
    ],
    "Properties": {
        "Cluster": {
            "Ref": "NamedReferenceButNotClusterName"  <-- I really want this part
        },
        "DesiredCount": 2,
        "TaskDefinition": {
            "Ref": "EcsTask"
        }
    }
}

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

AWS云形成是不可能的。

"MyCluster": { "Type": "AWS::ECS::Cluster" }

上述cloudformation脚本将生成名称格式为<StackName>-MyCluster-<RandomSequence>的ECS群集。 stackname在执行cloudformation脚本时作为输入提供。随机序列由cloudformation生成,不能确定。

此时,创建具有所需命名约定的集群的最佳选择是使用aws cli或使用aws sdk的小程序。