繁体   English   中英

Cloudformation 嵌套堆栈命名

[英]Cloudformation nested stack naming

我正在使用多次使用的子模板构建嵌套的 Cloudformation 堆栈。

我希望不同的资源(S3 存储桶、目标组等)使用 AWS::StackName 作为其名称的一部分。

!Sub ${AWS::StackName}-s3bucket

嵌套的堆栈名称通常包含一个 AWS 生成的大写字符串,例如:

foobar-vpcstack-YN4842UYLUFL

但是,某些资源只允许使用全小写的名称。 有没有办法确保嵌套的堆栈名称都是小写的?

或者有没有更好的方法来处理嵌套堆栈及其资源的命名?

我用下面的规则来设置BucketName的S3存储在嵌套Cloudformation堆栈。 它确保存储桶名称全部小写且唯一。

"BucketName": {"Fn::Join": ["-", [
    "foo", {"Fn::Select": ["2", {"Fn::Split": ["/", {"Ref": "AWS::StackId"}]}]}
]]}

foo :是存储桶名称的前缀。

Fn::Select ... :该函数获取 StackId 的最后一部分。

鉴于示例 StackId: arn:aws:cloudformation:ap-northeast-1:888888:stack/ParentStack-ChildStack-11MKHI1KPKH7O/1f29c920-82d1-11eb-85b7-0ebec92bca7d

上面的代码为 BucketName 返回以下字符串: foo-1f29c920-82d1-11eb-85b7-0ebec92bca7d

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM