sti*_*ibi 3 amazon-web-services amazon-ecs
我正在尝试使用 CloudFormation 在 AWS 上部署 ECS 集群,但我不知道如何为集群设置自定义名称。
集群已创建,但以某种方式生成名称,格式如下stackname-ECSCluster-randomstring.
有没有办法为集群设置自定义名称?
AWS ::ECS::Cluster不接受任何参数或标签,AWS::ECS:Service也不接受任何参数或标签也不接受任何参数或标签。
这是一种装饰性的东西,但如果有一个有意义的名字那就太好了。
直接从我的 CloudFormation 脚本中剪辑。如果你想传递它,你可以将其作为参数传递。指定名称可能是您撰写帖子后添加的内容。不管怎样,这对我有用。
Resources:
MyCluster:
Type: AWS::ECS::Cluster
Properties:
ClusterName: TheNameOfTheCluster
Run Code Online (Sandbox Code Playgroud)
如果您想修改集群的名称,可以使用Fn::Join来连接两个(或更多)字符串。以下将生成一个名为“MyClusterNamePrefix-MyClusterNameSuffix”的集群
Resources:
MyCluster:
Type: AWS::ECS::Cluster
Properties:
ClusterName: !Join
- "-" # The delimiter String
- - MyClusterNamePrefix
- MyClusterNameSuffix
Run Code Online (Sandbox Code Playgroud)
如果您需要从中取回名称,您可以在其他地方引用,但它们并不那么容易。我知道这并不完全是您所要求的,但您可能需要在其他地方引用该名称(例如UserData)。
Outputs:
MyClusterName:
Description: The Name of My Cluster
Value:
Fn::Select:
- 1
- Fn::Split:
- "/"
- Fn::GetAtt:
- MyCluster
Run Code Online (Sandbox Code Playgroud)
这是因为(在撰写本文时)Fn::GetAtt只能返回集群的 ARN(向下滚动到支持的属性表)。ECS集群ARN的规格如下:
arn:aws:ecs:region:account-id:cluster/cluster-name
Run Code Online (Sandbox Code Playgroud)
所以,把它们放在一起:
根据需要移植为 JSON。这是一种丑陋的方法,但它确实有效。我会密切关注亚马逊是否/何时可以真正将其公开为属性并更新您的代码。
| 归档时间: |
|
| 查看次数: |
2638 次 |
| 最近记录: |