Amazon web services 为什么函数Fn::GetAtt会给我错误?

Amazon web services 为什么函数Fn::GetAtt会给我错误?,amazon-web-services,amazon-cloudformation,serverless,Amazon Web Services,Amazon Cloudformation,Serverless,我尝试使用fn::GetAtt函数来计算权限和引用。我的cloudformation json是: 定义的资源部分是: "Resources": { "helloworld": { "Properties": { "AutoPublishAlias": "live", "Handler": "index.handler", "Runtime": "nodejs6.10", "CodeUri": "s3://ss-sheng/src/helloWorld.zip

我尝试使用fn::GetAtt函数来计算权限和引用。我的cloudformation json是: 定义的资源部分是:

"Resources": {
"helloworld": {
  "Properties": {
    "AutoPublishAlias": "live",
    "Handler": "index.handler",
    "Runtime": "nodejs6.10",
    "CodeUri": "s3://ss-sheng/src/helloWorld.zip",
    "Role": {
      "Ref": "dependrole"
    },
    "Timeout": 3,
    "ReservedConcurrentExecutions": 5,
    "Tags": {
      "PROJECT": "My Point",
      "COST_CENTRE": "6400073401",
      "BUSINESS_UNIT": "My Programs",
      "BUSINESS_CONTACT": "Greg Windsor",
      "TIER": "Development"
    }
  },
  "Type": "AWS::Serverless::Function"
},
"helloworldpermission": {
  "DependsOn": "helloworld",
  "Properties": {
    "Action": "lambda:InvokeFunction",
    "FunctionName": {
      "Fn::Join": [
        ":",
        [
          {
            "Ref": "helloworld"
          },
          {
            "Fn::GetAtt": [
              "helloworld",
              "Version"
            ]
          }
        ]
      ]
    },
    "Principal": "apigateway.amazonaws.com"
  },
  "Type": "AWS::Lambda::Permission"
}
}
我得到一个错误:

Template error: every Fn::GetAtt object requires two non-empty parameters, the resource name and the resource attribute
我已经给了他们两个参数“helloworld”和“Version”。 为什么lambda函数仍然显示错误

helloworld引用无服务器函数helloworld


我使用“Transform”:“AWS::Serverless-2016-10-31”,这是在云形成文件的开头定义的。

对于
AWS::Serverless::Function
资源,您可以使用
Ref
访问
版本和
别名

有关更多信息,请参阅以下链接:

因此,而不是

{
        "Fn::GetAtt": [
          "helloworld",
          "Version"
        ]
      }
应该是,

{
        "Fn::Ref": [
          "helloworld",
          "Version"
        ]
      }

您通过“资源”引用的内容:{“helloworld”:{“Role”:{“Ref”:“dependrole”。我在模板中看不到它的定义。根据以下内容:,您可以从“AWS::Serverless::Function”资源中获得的唯一属性是“Arn”。“AWS::Lambda::Version”是一个独立的资源。@Prabhatshingh您想看看本段前面定义的参数是哪个定义?dependrole