我正在尝试创建一个具有类似标签的 SecurityGroup Name: SG-StackName
。此代码在 json 中完美运行:
"Resources": {
"SecurityGroup": {
"Type": "AWS::EC2::SecurityGroup",
"Properties": {
...
"Tags": [{
"Key": "Name",
"Value": {
"Fn::Join" : [ "", [
"SG-",
{ "Ref" : "AWS::StackName" }
]]
}
}
]
}
},
现在我尝试将其转换为 yaml:
Resources:
SecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
...
Tags:
- Key: Name
- Value: !Join
- ''
- - 'SG-'
- Ref: AWS::StackName
堆栈构建失败,错误为“未在标签属性中找到键”。模板中的错误在哪里?
答案1
标签定义中有一个多余的“-”字符。它应该类似于下面的代码片段(我不确定 Join 语法,我个人通常使用 Sub):
Tags:
- Key: Name
Value: !Sub "SG-${AWS::StackName}"