CloudFormation堆栈yaml语法?

我试图创build一个像Name: SG-StackName这样的标签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 

堆栈生成失败,错误“在标签属性中找不到密钥”。 模板中的错误在哪里?

标签定义中有一个额外的“ – ”字符。 它应该看起来像下面的代码片段(我不知道的join语法,我个人通常使用Sub):

 Tags: - Key: Name Value: !Sub "SG-${AWS::StackName}"