gpt4 book ai didi

amazon-web-services - 带有 cloudformation 的 ECS 集群名称

转载 作者:行者123 更新时间:2023-12-02 15:21:59 25 4
gpt4 key购买 nike

我正在尝试使用 CloudFormation 在 AWS 上部署 ECS 集群,但我不知道如何为集群设置自定义名称。

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

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

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

这是一种装饰性的东西,但如果有有意义的名字就好了。

最佳答案

直接从我的 CloudFormation 脚本中截取。如果你想传入它,你可以这样做作为参数。指定名称可能是自您撰写帖子以来添加的内容。无论哪种方式,这对我都有效。

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

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

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

如果您需要从中取回名称,您可以在其他地方引用,但它们并不容易。我知道这与您的要求不完全相同,但您可能需要在别处引用该名称(例如 UserData)。

Outputs:
MyClusterName:
Description: The Name of My Cluster
Value:
Fn::Select:
- 1
- Fn::Split:
- "/"
- Fn::GetAtt:
- MyCluster

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

arn:aws:ecs:region:account-id:cluster/cluster-name

所以,把它们放在一起:

  • Fn::Split在“/”上拆分,丢弃定界符,并返回 ["arn:aws:ecs:region:account-id:cluster", "cluster-name"]
  • Fn::Select允许您从字符串列表中进行选择。因此传递“1”仅返回“cluster-name”。

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

关于amazon-web-services - 带有 cloudformation 的 ECS 集群名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35131434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com