使用Fn :: Join和参数时的AWS Cloudformation错误

时间:2018-09-19 03:58:28

标签: amazon-web-services amazon-cloudformation

我正在尝试使用cloudformation创建一个s3存储桶,并在最后一个从用户定义参数中提取的任意用户名上标记。在下面,我定义了s3资源。

"S3Bucket" : {
      "Type" : "AWS::S3::Bucket",
      "Properties" : {
          "BucketName" : {
              "Fn::Join" :[
                  "-", [
                      "test-bucket", 
                      { 
                        "ref": "User"
                      }
                    ]
                ]
            }
      }

我使用this作为资源,但是我从cloudfromation得到了以下错误消息:

  

模板验证错误:模板错误:每个Fn :: Join对象都需要两个参数,(1)字符串定界符,(2)要连接的字符串列表,或者返回字符串列表的函数(例如Fn) :: GetAZs。

我似乎同时拥有消息中描述的定界符和字符串列表。即使我传递了多个字符串,它仍然会引发相同的错误。

1 个答案:

答案 0 :(得分:1)

请将ref更新为Ref,以便cloudformation可以识别功能并相应地将其替换为字符串值。

"S3Bucket" : {
  "Type" : "AWS::S3::Bucket",
  "Properties" : {
      "BucketName" : {
          "Fn::Join": [
              "-", [
                  "test-bucket", 
                  { 
                    "Ref": "User"
                  }
                ]
            ]
        }
  }
}