Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon cloudformation 云形成嵌套堆栈命名_Amazon Cloudformation - Fatal编程技术网

Amazon cloudformation 云形成嵌套堆栈命名

Amazon cloudformation 云形成嵌套堆栈命名,amazon-cloudformation,Amazon Cloudformation,我正在使用多次使用的子模板构建嵌套的Cloudformation堆栈 我希望不同的资源(S3存储桶、目标组等)使用AWS::StackName作为其名称的一部分 !Sub ${AWS::StackName}-s3bucket 嵌套堆栈名称通常包括AWS生成的大写字符串,如: foobar-vpcstack-YN4842UYLUFL 但是,有些资源只允许使用全小写的名称。 有没有办法确保嵌套的堆栈名称都是小写的 或者有更好的方法来处理嵌套堆栈及其资源的命名吗?我使用以下规则为嵌套Cloudfo

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

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

!Sub ${AWS::StackName}-s3bucket
嵌套堆栈名称通常包括AWS生成的大写字符串,如:

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


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

我使用以下规则为嵌套Cloudformation堆栈中的s3 bucket设置
BucketName
。它确保bucket名称都是小写的,并且是唯一的

"BucketName": {"Fn::Join": ["-", [
    "foo", {"Fn::Select": ["2", {"Fn::Split": ["/", {"Ref": "AWS::StackId"}]}]}
]]}
foo
:是bucket名称的前缀

Fn::Select…
:函数获取StackId的最后一部分

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

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