According to the [AWS CFN docs for SQS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html#aws-properties-sqs-queues-return-values-ref), the physical resource ID should be its queue URL.

>Ref
>
>When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns the queue URL. For example:
>
>{ "Ref": "https://sqs.us-east-2.amazonaws.com/123456789012/aa4-MyQueue-Z5NOSZO2PZE9" }

However, SQS queues created in Localstack via CloudFormation have physical resource IDs that are equal to the queue name:

```
$ aws cloudformation list-stack-resources --stack-name my-stack --endpoint http://localhost:4581 | grep -A3 -B3 Queue
        {
            "LogicalResourceId": "EventQueue",
            "PhysicalResourceId": "my-stack-events",
            "ResourceType": "AWS::SQS::Queue",
            "LastUpdatedTimestamp": "2011-06-21T20:15:58Z",
            "ResourceStatus": "CREATE_COMPLETE"
        },
```

I believe that this [was fixed at one point](https://github.com/localstack/localstack/pull/577) in Localstack, but seems to have since been reverted. I've [submitted an upstream issue](https://github.com/spulec/moto/issues/2407) to Moto as well.
try:
            return _parse_and_create_resource(logical_id, resource_json, resources_map, region_name)
        except Exception as e:
            LOG.error('Unable to parse and create resource "%s": %s %s' %
                      (logical_id, e, traceback.format_exc()))
            raise
    def _parse_and_create_resource(logical_id, resource_json, resources_map, region_name):
        stack_name = resources_map.get('AWS::StackName')
        resource_hash_key = (stack_name, logical_id)
        
        updating = CURRENTLY_UPDATING_RESOURCES.get(resource_hash_key)
        LOG.debug('Currently updating stack resource %s/%s: %s' % (stack_name, logical_id, updating))
        if updating:
            return None
        
        resource_tuple = parsing.parse_resource(logical_id, resource_json, resources_map)
        if not resource_tuple:
            return None
        _, resource_json, _ = resource_tuple
        
        props = resource_json['Properties'] = resource_json.get('Properties') or {}
        if resource_json['Type'] == 'AWS::Lambda::EventSourceMapping' and not props.get('StartingPosition'):
            props['StartingPosition'] = 'LATEST'
        
        resource = resources_map._parsed_resources.get(logical_id)
        
        resource_wrapped = {logical_id: resource_json}
        should_be_created = template_deployer.should_be_deployed(logical_id, resource_wrapped, stack_name)