具有云形态的ECS群集名称

时间:2016-02-01 13:12:04

标签: amazon-web-services amazon-ecs

我正在尝试使用CloudFormation在AWS上部署ECS群集,但我无法弄清楚如何将群集设置为自定义名称。

创建群集,但以某种方式生成名称,格式为stackname-ECSCluster-randomstring

有没有办法为集群设置自定义名称?

AWS::ECS::Cluster不接受任何参数或标记,也不接受AWS::ECS:Service

这是一种美化的东西,但拥有有意义的名字会很好。

2 个答案:

答案 0 :(得分:3)

CloudFormation目前不允许您设置自定义名称。如果要使用特定名称,可以在CloudFormation外部创建集群,并在模板中引用它。

答案 1 :(得分:1)

直接从我的CloudFormation脚本中删除。如果要传入,可以将其作为参数。指定名称可能是您撰写帖子后添加的内容。无论哪种方式,这都适合我。

df %>%
      dplyr::group_by(DRUG,FED) %>%
      dplyr::summarize(mean=mean(AUC0t, na.rm=TRUE), 
                low = CI90lo(AUC0t), 
                 high= CI90hi(AUC0t),
                 min=min(AUC0t, na.rm=TRUE),
                 max=max(AUC0t,na.rm=TRUE), 
                 sd= sd(AUC0t, na.rm=TRUE))

如果要破坏群集的名称,可以使用Fn::Join来连接两个(或更多)字符串。以下将导致名为“MyClusterNamePrefix-MyClusterNameSuffix”的集群

restorecon .ssh/
restorecon .ssh/authorized_keys

如果你需要退出它的名字,你可以在其他地方参考,它们并不那么容易。我知道这不完全是您所问的,但您可能需要在其他地方引用该名称(例如 UserData)。

Resources:
  MyCluster:
    Type: AWS::ECS::Cluster
    Properties:
      ClusterName: TheNameOfTheCluster

这是因为(在撰写本文时)Fn::GetAtt只能返回群集的ARN(向下滚动到支持的属性表)。 ECS集群ARN的规范如下:

Resources:
  MyCluster:
    Type: AWS::ECS::Cluster
    Properties:
      ClusterName: !Join
        - "-"    # The delimiter String
        - - MyClusterNamePrefix
          - MyClusterNameSuffix

所以,把它们放在一起:

  • Fn::Split拆分“/”,丢弃分隔符,并返回[“arn:aws:ecs:region:account-id:cluster”,“cluster-name”]
  • Fn::Select允许您从字符串列表中进行选择。所以传递'1'只返回“cluster-name”。

根据需要移植到JSON。这是一种丑陋的方法,但它有效。我会留意是否/何时亚马逊可以将其作为属性公开并更新您的代码。