gpt4 book ai didi

amazon-web-services - 删除 Cloudformation 模板中 "Fn::join"之前的空项

转载 作者:行者123 更新时间:2023-12-03 07:39:48 25 4
gpt4 key购买 nike

我想从参数列表中使用 Fn::Join 创建一个字符串,但我不知道如何忽略空字符串。

如何忽略空参数以使用“application-dev”而不是“application---dev”?

比如我的参数是:

Parameters:
AppName:
Description: "Application name:"
Type: String
Default: "application"

AppType:
Description: "Application type:"
Type: String
Default: "" <----------------------------- This one can be empty !

AppEnv:
Description: "Application environment:"
Type: String
Default: "dev"

在我的资源中,我尝试:

Resources:
S3BucketTest:
Type: "AWS::S3::Bucket"
Properties:
BucketName: !Sub '${AppName}-${AppType}-${AppEnv}'
Tags:
- Key: "Name"
Value: !Join ['-', [!Ref AppName, !Ref AppType, !Ref AppEnv]]

顺便说一句,BucketName 是“application--dev”...标签名称是“application--dev”...

谢谢

最佳答案

您可以使用 !If!Equals 的组合:

Resources:
S3BucketTest:
Type: "AWS::S3::Bucket"
Properties:
BucketName: !If [!Equals ["", !Ref AppType], !Sub '${AppName}-${AppEnv}', !Sub '${AppName}-${AppType}-${AppEnv}']
Tags:
- Key: "Name"
Value: !If [!Equals ["", !Ref AppType], !Join ['-', [!Ref AppName, !Ref AppEnv], !Join ['-', [!Ref AppName, !Ref AppType, !Ref AppEnv]]

关于amazon-web-services - 删除 Cloudformation 模板中 "Fn::join"之前的空项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72286319/

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