title: why the function Fn::GetAtt function give me error?
body: <p>I try to use fn::GetAtt function to calculate the permission and ref. my cloudformation json is:
  The defined resource part is:</p>
  
  <pre><code>"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"
  }
  }
  </code></pre>
  
  <p>I get the error:</p>
  
  <pre><code>Template error: every Fn::GetAtt object requires two non-empty parameters, the resource name and the resource attribute
  </code></pre>
  
  <p>I give them two parameters already "helloworld" and "Version".
  Why lambda function still show me error?</p>
  
  <p>The helloworld ref the serverless function helloworld.</p>
  
  <p>I use "Transform": "AWS::Serverless-2016-10-31", which is defined at the beginning of the cloud-formation file.</p>