Repository: localstack/localstack

Issue:
Template error: resource does not support attribute type Arn in Fn::GetAtt when adding org and app to simple Serverless template
# Type of request: This is a ...

[X] bug report
[ ] feature request

# Detailed description

I am experiencing some serious issues with getting my Serverless project to deploy to localstack using the Pro edition. I have almost immediately run into a blocking issue after using the product. I am using localstack version 0.11.0.5 and a Serverless version of
```
Framework Core: 1.68.0 (standalone)
Plugin: 3.6.6
SDK: 2.3.0
Components: 2.30.1
```

As soon as I attempt to add my Serverless organization and app details to a very basic project, deployment to localstack fails with a **Template error: resource HelloLogGroup does not support attribute type Arn in Fn::GetAtt** that I do not understand.

## Expected behavior

I expect to be able to deploy the same `serverless.yml` file to actual AWS and localstack.

## Actual behavior

A very basic `serverless.yml` file fails to deploy to localstack as soon as my Serverless `org` and `app` fields are included.

# Steps to reproduce

First, I started localstack using the following command:
```bash
sudo docker run -it -e LOCALSTACK_HOSTNAME="localhost" -e \
TEST_AWS_ACCOUNT_ID="000000000000" -e DEFAULT_REGION="us-east-1" -e \
LOCALSTACK_API_KEY="<HIDDEN>" -p 443:443 -p 4566:4566 --rm --privileged --name \
localstack_main -p 4592-4593:4592-4593 -p 8080-8081:8080-8081 -p 4581:4581 -p 4567:4567 -p \
4569:4569 -p 4586:4586 -p 4572:4572 -p 4574:4574  -v "/tmp/localstack:/tmp/localstack" \
-v "/var/run/docker.sock:/var/run/docker.sock" -e DOCKER_HOST="unix:///var/run/docker.sock" \
-e HOST_TMP_FOLDER="/tmp/localstack" "localstack/localstack"
```
which produced as output:
<details>
  <summary>Startup logs for localstack</summary>
  
```
Waiting for all LocalStack services to be ready
2020-04-30 06:28:44,238 CRIT Supervisor is running as root.  Privileges were not dropped because no user is specified in the config file.  If you intend to run as root, you can set user=root in the config file to avoid this message.
2020-04-30 06:28:44,240 INFO supervisord started with pid 14
2020-04-30 06:28:45,244 INFO spawned: 'dashboard' with pid 20
2020-04-30 06:28:45,248 INFO spawned: 'infra' with pid 21
(. .venv/bin/activate; bin/localstack web)
2020-04-30 06:28:45,264 INFO success: dashboard entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
LocalStack version: 0.11.0
(. .venv/bin/activate; exec bin/localstack start --host)
LocalStack version: 0.11.0
Starting local dev environment. CTRL-C to quit.
2020-04-30 06:28:46,662 INFO success: infra entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
Waiting for all LocalStack services to be ready
2020-04-30T06:28:52:INFO:localstack_ext.bootstrap.licensing: Successfully activated API key
Starting DNS servers (tcp/udp port 53 on 0.0.0.0)...
Starting edge router (http port 4566)...
Starting edge router (https port 443)...
Starting mock API Gateway service in http ports 443 (recommended) and 4567 (deprecated)...
2020-04-30T06:28:56:INFO:localstack.multiserver: Starting multi API server process on port 51492
Starting mock CloudFormation service in http ports 443 (recommended) and 4581 (deprecated)...
Starting mock CloudWatch service in http ports 443 (recommended) and 4582 (deprecated)...
Starting mock DynamoDB service in http ports 443 (recommended) and 4569 (deprecated)...
Starting mock DynamoDB Streams service in http ports 443 (recommended) and 4570 (deprecated)...
Starting mock EC2 service in http ports 443 (recommended) and 4597 (deprecated)...
Starting mock ES service in http ports 443 (recommended) and 4578 (deprecated)...
Starting mock Firehose service in http ports 443 (recommended) and 4573 (deprecated)...
Starting mock IAM service in http ports 443 (recommended) and 4593 (deprecated)...
Starting mock STS service in http ports 443 (recommended) and 4592 (deprecated)...
Starting mock Kinesis service in http ports 443 (recommended) and 4568 (deprecated)...
Starting mock KMS service in http ports 443 (recommended) and 4599 (deprecated)...
Starting mock Lambda service in http ports 443 (recommended) and 4574 (deprecated)...
Starting mock CloudWatch Logs service in http ports 443 (recommended) and 4586 (deprecated)...
Starting mock Redshift service in http ports 443 (recommended) and 4577 (deprecated)...
Starting mock Route53 service in http ports 443 (recommended) and 4580 (deprecated)...
Starting mock S3 service in http ports 443 (recommended) and 4572 (deprecated)...
Starting mock Secrets Manager service in http ports 443 (recommended) and 4584 (deprecated)...
Starting mock SES service in http ports 443 (recommended) and 4579 (deprecated)...
Waiting for all LocalStack services to be ready
Starting mock SNS service in http ports 443 (recommended) and 4575 (deprecated)...
Starting mock SQS service in http ports 443 (recommended) and 4576 (deprecated)...
Starting mock SSM service in http ports 443 (recommended) and 4583 (deprecated)...
Starting mock Cloudwatch Events service in http ports 443 (recommended) and 4587 (deprecated)...
Starting mock StepFunctions service in http ports 443 (recommended) and 4585 (deprecated)...
Starting mock RDS service in http ports 443 (recommended) and 4594 (deprecated)...
Starting mock Cognito Identity Provider (IdP) service in http ports 443 (recommended) and 4590 (deprecated)...
Starting mock Cognito Identity service in http ports 443 (recommended) and 4591 (deprecated)...
Starting mock ElastiCache service in http ports 443 (recommended) and 4598 (deprecated)...
Starting mock ECR service in http ports 443 (recommended) and 4610 (deprecated)...
Starting mock ECS service in http ports 443 (recommended) and 4601 (deprecated)...
Starting mock IoT, IoT Analytics service in http ports 443 (recommended) and 4589 (deprecated)...
Starting mock IoT Data service in http ports 443 (recommended) and 4543 (deprecated)...
Starting mock EKS service in http ports 443 (recommended) and 4602 (deprecated)...
Starting mock EMR service in http ports 443 (recommended) and 4600 (deprecated)...
Starting mock XRay service in http ports 443 (recommended) and 4603 (deprecated)...
Starting mock CloudFront service in http ports 443 (recommended) and 4606 (deprecated)...
Starting mock Athena service in http ports 443 (recommended) and 4607 (deprecated)...
Starting mock Glacier service in http ports 443 (recommended) and 4613 (deprecated)...
Starting mock Glue service in http ports 443 (recommended) and 4608 (deprecated)...
Starting mock AppSync service in http ports 443 (recommended) and 4605 (deprecated)...
Starting mock SageMaker service in http ports 443 (recommended) and 4609 (deprecated)...
Starting mock CloudTrail service in http ports 443 (recommended) and 4612 (deprecated)...
Starting mock Organizations service in http ports 443 (recommended) and 4615 (deprecated)...
2020-04-30T06:28:59:INFO:localstack_ext.utils.websockets: Starting websocket server on port 4511
Ready.
```
</details>

Then, I created a project based on the Serverless "Hello World" example template by running the command `sls create --template aws-nodejs`. This created a simple Serverless project with `handler.js` of
```js
'use strict';

module.exports.hello = async event => {
  return {
    statusCode: 200,
    body: JSON.stringify(
      {
        message: 'Go Serverless v1.0! Your function executed successfully!',
        input: event,
      },
      null,
      2
    ),
  };
};
```
and `serverless.yml` file of
```yml
service: localstack-test

provider:
  name: aws
  runtime: nodejs12.x

functions:
  hello:
    handler: handler.hello
```

To this project I installed and configured `serverless-localstack` by running the commands
```
npm init
npm install --save-dev serverless-localstack
```
and then updating my `serverless.yml` file to
```yml
service: localstack-test

plugins:
  - serverless-localstack

provider:
  name: aws
  runtime: nodejs12.x

custom:
  localstack:
    stages:
      - local

functions:
  hello:
    handler: handler.hello
```

With this configuration, I was able to successfully deploy my project to localstack using the command `AWS_PROFILE=tim sls deploy --stage local` which generated output
<details>
  <summary>Successful first deployment logs</summary>
  
```
Serverless: Using serverless-localstack
Serverless: Warning: Unable to find plugin named: TypeScriptPlugin
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Creating Stack...
Serverless: Checking Stack create progress...
.
Serverless: Stack create finished...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service localstack-test.zip file to S3 (2.32 KB)...
Serverless: Validating template...
Serverless: Skipping template validation: Unsupported in Localstack
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
.
Serverless: Stack update finished...
Service Information
service: localstack-test
stage: local
region: us-east-1
stack: localstack-test-local
resources: 6
api keys:
  None
endpoints:
  None
functions:
  hello: localstack-test-local-hello
layers:
  None
Serverless: Run the "serverless" command to setup monitoring, troubleshooting and testing.
```
</details>

At this point, I updated my `serverless.yml` to include the details of my Serverless `org` and `app` as follows:
```yml
org: my-org
app: my-app
service: localstack-test

plugins:
  - serverless-localstack

provider:
  name: aws
  runtime: nodejs12.x

custom:
  localstack:
    stages:
      - local

functions:
  hello:
    handler: handler.hello
```

Then, I once more tried to deploy my project to localstack using the command `AWS_PROFILE=tim sls deploy --stage local` which generated my current blocking **Template error: resource HelloLogGroup does not support attribute type Arn in Fn::GetAtt** error and output:
<details>
  <summary>Serverless failure logs</summary>
  
```
Serverless: Using serverless-localstack
Serverless: Warning: Unable to find plugin named: TypeScriptPlugin
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Safeguards Processing...
Serverless: Safeguards Results:

   Summary --------------------------------------------------

   passed - Narrow Roles
   passed - Most-recent LTS Node
   warned - Forbid Insecure S3 Bucket Access
   warned - Require Dead Letter Queues
   passed - Limit Deployment Regions
   passed - Lock to Development
   passed - No Secret Environment Variables

   Details --------------------------------------------------

   1) Warned - Bucket "ServerlessDeploymentBucket" doesn't have a BucketPolicy forbidding unsecure HTTP access.
      details: http://slss.io/sg-forbid-s3-http-access
      This safeguard forces all S3 resources to be accessed through secure HTTPS connections.


   2) Warned - Function "hello" doesn't have a Dead Letter Queue configured.
      details: http://slss.io/sg-require-dlq
      Ensure that particular functions which may need them include dead letter queues for holding events.


Serverless: Safeguards Summary: 5 passed, 2 warnings, 0 errors
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service localstack-test.zip file to S3 (113.52 KB)...
Serverless: Validating template...
Serverless: Skipping template validation: Unsupported in Localstack
Serverless: Updating Stack...
Serverless: Publishing service to the Serverless Dashboard...
Serverless: Successfully published your service to the Serverless Dashboard: https://dashboard.serverless.com/tenants/tielio/applications/tiel-platform/services/localstack-test/stage/local/region/us-east-1
 
  Serverless Error ---------------------------------------
 
  Template error: resource HelloLogGroup does not support attribute type Arn in Fn::GetAtt
 
  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com
 
  Your Environment Information ---------------------------
     Operating System:          linux
     Node Version:              12.16.1
     Framework Version:         1.68.0 (standalone)
     Plugin Version:            3.6.6
     SDK Version:               2.3.0
     Components Version:        2.30.1
```
</details>
at the same time, my localstack logs contain the output
<details>
  <summary>Failure logs for localstack</summary>
  
```
FwoGZXIvYXdzEOj//////////wEaDPouL4V8stB8jsViHiLfAcC1SmgjtgFrKWawYYy3FENu3VIsrFqWm33weIbkLw1exXOFCEeaLWvEjwXaziE9H+5vHQXLovTNLUUg4bxkXmD41Ens5nfMGsSV2GRc3eZMHZuHb68sjtfW3Z0flhCfN60uFKF6UGBCCUOu2rbHKkr+fOi91fva8oF2XzcGG6C48YOvFKgUMnL5u8LRLM+gaYbTBSkxA6fpgH5SgGk/XQm4tCiFCG1NwB4uuID0/Ii7gSsd0IeVdFiUsuiArxzRv7hwxR+NSJ1VHHzWlYDnHMZBvbS2Es6pVzC012OkEfEo3Oqp9QUyLbAl23nmPYhMQNTExOjD69z7fWW9n5UIYpzmn33KP/ktqz6p7wBGrK5zxzavsA==
FwoGZXIvYXdzEOj//////////wEaDPouL4V8stB8jsViHiLfAcC1SmgjtgFrKWawYYy3FENu3VIsrFqWm33weIbkLw1exXOFCEeaLWvEjwXaziE9H+5vHQXLovTNLUUg4bxkXmD41Ens5nfMGsSV2GRc3eZMHZuHb68sjtfW3Z0flhCfN60uFKF6UGBCCUOu2rbHKkr+fOi91fva8oF2XzcGG6C48YOvFKgUMnL5u8LRLM+gaYbTBSkxA6fpgH5SgGk/XQm4tCiFCG1NwB4uuID0/Ii7gSsd0IeVdFiUsuiArxzRv7hwxR+NSJ1VHHzWlYDnHMZBvbS2Es6pVzC012OkEfEo3Oqp9QUyLbAl23nmPYhMQNTExOjD69z7fWW9n5UIYpzmn33KP/ktqz6p7wBGrK5zxzavsA==
2020-04-30T06:51:10:INFO:localstack.services.cloudformation.cloudformation_starter: TODO: apigateway.Deployment.delete_from_cloudformation_json {'FunctionName': 'localstack-test-local-hello', 'CodeSha256': 'B6M/4HEBHUwxYaJwVPEZsP2mSzdDexEwekzj5IZQ6DY='}
2020-04-30T06:51:10:INFO:localstack.utils.cloudformation.template_deployer: Updating resource HelloLambdaFunction of type Lambda::Function
FwoGZXIvYXdzEOj//////////wEaDPouL4V8stB8jsViHiLfAcC1SmgjtgFrKWawYYy3FENu3VIsrFqWm33weIbkLw1exXOFCEeaLWvEjwXaziE9H+5vHQXLovTNLUUg4bxkXmD41Ens5nfMGsSV2GRc3eZMHZuHb68sjtfW3Z0flhCfN60uFKF6UGBCCUOu2rbHKkr+fOi91fva8oF2XzcGG6C48YOvFKgUMnL5u8LRLM+gaYbTBSkxA6fpgH5SgGk/XQm4tCiFCG1NwB4uuID0/Ii7gSsd0IeVdFiUsuiArxzRv7hwxR+NSJ1VHHzWlYDnHMZBvbS2Es6pVzC012OkEfEo3Oqp9QUyLbAl23nmPYhMQNTExOjD69z7fWW9n5UIYpzmn33KP/ktqz6p7wBGrK5zxzavsA==
2020-04-30T06:51:16:ERROR:localstack.services.cloudformation.cloudformation_starter: Unable to parse and create resource "EnterpriseLogAccessIamRole": 400 Bad Request: <ErrorResponse xmlns="http://cloudformation.amazonaws.com/doc/2010-05-15/">
  <Error>
    <Type>Sender</Type>
    <Code>ValidationError</Code>
    <Message>Template error: resource HelloLogGroup does not support attribute type Arn in Fn::GetAtt</Message>
  </Error>
  <RequestId>cf4c737e-5ae2-11e4-a7c9-ad44eEXAMPLE</RequestId>
</ErrorResponse> Traceback (most recent call last):
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 174, in clean_json
    return resource.get_cfn_attribute(resource_json["Fn::GetAtt"][1])
  File "/opt/code/localstack/localstack/services/cloudformation/service_models.py", line 19, in get_cfn_attribute
    raise UnformattedGetAttTemplateException()
moto.cloudformation.exceptions.UnformattedGetAttTemplateException

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 201, in parse_and_create_resource
    return _parse_and_create_resource(
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 230, in _parse_and_create_resource
    resource_tuple = parsing.parse_resource(logical_id, resource_json, resources_map)
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 314, in parse_resource
    resource_json = clean_json(resource_json, resources_map)
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 185, in clean_json
    result = clean_json_orig(resource_json, resources_map)
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 259, in clean_json
    cleaned_val = clean_json(value, resources_map)
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 185, in clean_json
    result = clean_json_orig(resource_json, resources_map)
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 259, in clean_json
    cleaned_val = clean_json(value, resources_map)
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 185, in clean_json
    result = clean_json_orig(resource_json, resources_map)
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 266, in clean_json
    return [clean_json(val, resources_map) for val in resource_json]
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 266, in <listcomp>
    return [clean_json(val, resources_map) for val in resource_json]
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 185, in clean_json
    result = clean_json_orig(resource_json, resources_map)
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 259, in clean_json
    cleaned_val = clean_json(value, resources_map)
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 185, in clean_json
    result = clean_json_orig(resource_json, resources_map)
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 259, in clean_json
    cleaned_val = clean_json(value, resources_map)
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 185, in clean_json
    result = clean_json_orig(resource_json, resources_map)
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 266, in clean_json
    return [clean_json(val, resources_map) for val in resource_json]
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 266, in <listcomp>
    return [clean_json(val, resources_map) for val in resource_json]
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 185, in clean_json
    result = clean_json_orig(resource_json, resources_map)
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 259, in clean_json
    cleaned_val = clean_json(value, resources_map)
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 185, in clean_json
    result = clean_json_orig(resource_json, resources_map)
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 266, in clean_json
    return [clean_json(val, resources_map) for val in resource_json]
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 266, in <listcomp>
    return [clean_json(val, resources_map) for val in resource_json]
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 185, in clean_json
    result = clean_json_orig(resource_json, resources_map)
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 178, in clean_json
    raise ValidationError(
moto.cloudformation.exceptions.ValidationError: 400 Bad Request: <ErrorResponse xmlns="http://cloudformation.amazonaws.com/doc/2010-05-15/">
  <Error>
    <Type>Sender</Type>
    <Code>ValidationError</Code>
    <Message>Template error: resource HelloLogGroup does not support attribute type Arn in Fn::GetAtt</Message>
  </Error>
  <RequestId>cf4c737e-5ae2-11e4-a7c9-ad44eEXAMPLE</RequestId>
</ErrorResponse>

2020-04-30T06:51:16:ERROR:localstack.services.cloudformation.cloudformation_starter: Unable to parse and create resource "EnterpriseLogAccessIamRole": 400 Bad Request: <ErrorResponse xmlns="http://cloudformation.amazonaws.com/doc/2010-05-15/">
  <Error>
    <Type>Sender</Type>
    <Code>ValidationError</Code>
    <Message>Template error: resource HelloLogGroup does not support attribute type Arn in Fn::GetAtt</Message>
  </Error>
  <RequestId>cf4c737e-5ae2-11e4-a7c9-ad44eEXAMPLE</RequestId>
</ErrorResponse> Traceback (most recent call last):
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 174, in clean_json
    return resource.get_cfn_attribute(resource_json["Fn::GetAtt"][1])
  File "/opt/code/localstack/localstack/services/cloudformation/service_models.py", line 19, in get_cfn_attribute
    raise UnformattedGetAttTemplateException()
moto.cloudformation.exceptions.UnformattedGetAttTemplateException

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 201, in parse_and_create_resource
    return _parse_and_create_resource(
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 230, in _parse_and_create_resource
    resource_tuple = parsing.parse_resource(logical_id, resource_json, resources_map)
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 314, in parse_resource
    resource_json = clean_json(resource_json, resources_map)
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 185, in clean_json
    result = clean_json_orig(resource_json, resources_map)
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 259, in clean_json
    cleaned_val = clean_json(value, resources_map)
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 185, in clean_json
    result = clean_json_orig(resource_json, resources_map)
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 259, in clean_json
    cleaned_val = clean_json(value, resources_map)
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 185, in clean_json
    result = clean_json_orig(resource_json, resources_map)
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 266, in clean_json
    return [clean_json(val, resources_map) for val in resource_json]
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 266, in <listcomp>
    return [clean_json(val, resources_map) for val in resource_json]
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 185, in clean_json
    result = clean_json_orig(resource_json, resources_map)
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 259, in clean_json
    cleaned_val = clean_json(value, resources_map)
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 185, in clean_json
    result = clean_json_orig(resource_json, resources_map)
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 259, in clean_json
    cleaned_val = clean_json(value, resources_map)
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 185, in clean_json
    result = clean_json_orig(resource_json, resources_map)
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 266, in clean_json
    return [clean_json(val, resources_map) for val in resource_json]
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 266, in <listcomp>
    return [clean_json(val, resources_map) for val in resource_json]
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 185, in clean_json
    result = clean_json_orig(resource_json, resources_map)
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 259, in clean_json
    cleaned_val = clean_json(value, resources_map)
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 185, in clean_json
    result = clean_json_orig(resource_json, resources_map)
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 266, in clean_json
    return [clean_json(val, resources_map) for val in resource_json]
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 266, in <listcomp>
    return [clean_json(val, resources_map) for val in resource_json]
  File "/opt/code/localstack/localstack/services/cloudformation/cloudformation_starter.py", line 185, in clean_json
    result = clean_json_orig(resource_json, resources_map)
  File "/opt/code/localstack/.venv/lib/python3.8/site-packages/moto/cloudformation/parsing.py", line 178, in clean_json
    raise ValidationError(
moto.cloudformation.exceptions.ValidationError: 400 Bad Request: <ErrorResponse xmlns="http://cloudformation.amazonaws.com/doc/2010-05-15/">
  <Error>
    <Type>Sender</Type>
    <Code>ValidationError</Code>
    <Message>Template error: resource HelloLogGroup does not support attribute type Arn in Fn::GetAtt</Message>
  </Error>
  <RequestId>cf4c737e-5ae2-11e4-a7c9-ad44eEXAMPLE</RequestId>
</ErrorResponse>
```
</details>

I have searched for a solution to my **Template error: resource HelloLogGroup does not support attribute type Arn in Fn::GetAtt** error and cannot find one. I do not understand why adding the simple `org` and `app` fields to my `serverless.yml` causes it to fail deployment to localstack. This is a real blocker for me.

Thank you for your help.

---

Furthermore, the localstack documentation contains the note:
> IMPORTANT NOTE: If you are posting any commands, logs, or screenshots from your LocalStack installation (e.g., when reporting an issue on Github or in the community Slack channel), please always make sure to hide or remove the LOCALSTACK_API_KEY variable from the output!

but I cannot find any mention of the "community Slack channel" anywhere else. Is this a resource that exists for me to receive prompt support?



Discussion:

Resolving patch:
diff --git a/localstack/services/cloudformation/service_models.py b/localstack/services/cloudformation/service_models.py
--- a/localstack/services/cloudformation/service_models.py
+++ b/localstack/services/cloudformation/service_models.py
@@ -20,10 +20,6 @@ def get_cfn_attribute(self, attribute_name):
         return attr
 
 
-class CloudFormationStack(BaseModel):
-    pass
-
-
 class EventsRule(BaseModel):
     def get_cfn_attribute(self, attribute_name):
         if attribute_name == 'Arn':
@@ -31,19 +27,27 @@ def get_cfn_attribute(self, attribute_name):
         return super(EventsRule, self).get_cfn_attribute(attribute_name)
 
 
-class ElasticsearchDomain(BaseModel):
+class LogsLogGroup(BaseModel):
+
+    def get_cfn_attribute(self, attribute_name):
+        if attribute_name == 'Arn':
+            return self.params.get('Arn') or aws_stack.log_group_arn(self.params.get('LogGroupName'))
+        return super(LogsLogGroup, self).get_cfn_attribute(attribute_name)
+
+
+class CloudFormationStack(BaseModel):
     pass
 
 
-class FirehoseDeliveryStream(BaseModel):
+class ElasticsearchDomain(BaseModel):
     pass
 
 
-class GatewayResponse(BaseModel):
+class FirehoseDeliveryStream(BaseModel):
     pass
 
 
-class LogsLogGroup(BaseModel):
+class GatewayResponse(BaseModel):
     pass
 
 
diff --git a/localstack/services/generic_proxy.py b/localstack/services/generic_proxy.py
--- a/localstack/services/generic_proxy.py
+++ b/localstack/services/generic_proxy.py
@@ -209,7 +209,8 @@ def forward(self, method):
         forward_headers = CaseInsensitiveDict(self.headers)
 
         # force close connection
-        if forward_headers.get('Connection') not in ['keep-alive', None]:
+        connection_header = forward_headers.get('Connection') or ''
+        if connection_header.lower() not in ['keep-alive', '']:
             self.close_connection = 1
 
         def is_full_url(url):
@@ -275,7 +276,7 @@ def is_full_url(url):
 
             # perform the actual invocation of the backend service
             if response is None:
-                forward_headers['Connection'] = forward_headers.get('Connection') or 'close'
+                forward_headers['Connection'] = connection_header or 'close'
                 data_to_send = self.data_bytes
                 request_url = proxy_url
                 if modified_request:


Test patch: