Guys,

I've started using Localstack recently and loving it so far. I've ran into an issue and can't figure out what I am missing in my configuration if there is any.

So, i've managed to configure and test the following successfully

1.  `
API GW --> SQS` - If I post a message to the HTTP Endpoint it gets to SQS and I see SQS response (Default SQS style, i.e SendMessageResponse XML)

2. `SQS --> Lambda` - If I post a message into SQS manually, then corresponding Lambda gets triggered (I see Lambda logs) and I see SQS response (Default SQS style, i.e SendMessageResponse XML)

But If I combine these two i.e

`API GW --> SQS --> Lambda` - then

- I see Lambda is being excuted (i see lambda logs  exactly how they are in 2 above)
- But don't get SQS response (Default SQS style, i.e SendMessageResponse XML)
- Following exception is being thrown

```
localstack_1  | 2019-09-25T14:09:53:ERROR:localstack.services.generic_proxy: Error forwarding request: object supporting the buffer API required Traceback (most recent call last):
localstack_1  |   File "/opt/code/localstack/localstack/services/generic_proxy.py", line 239, in forward
localstack_1  |     path=path, data=data, headers=forward_headers)
localstack_1  |   File "/opt/code/localstack/localstack/services/sqs/sqs_listener.py", line 49, in forward_request
localstack_1  |     new_response = self._send_message(path, data, req_data, headers)
localstack_1  |   File "/opt/code/localstack/localstack/services/sqs/sqs_listener.py", line 237, in _send_message
localstack_1  |     message_attr_hash=md5(data),
localstack_1  |   File "/opt/code/localstack/localstack/utils/common.py", line 304, in md5
localstack_1  |     m.update(to_bytes(string))
localstack_1  | TypeError: object supporting the buffer API required
```

`Implement API Gateway SQS proxy` is recently implented with PR https://github.com/localstack/localstack/pull/1354 (Thanks to @mathewpower )

and I'm wondering is this anything to do with missing `data=` parameter at 
https://github.com/mathewpower/localstack/blob/028cc8660317aac426c1195ba7d8dedf45ef9007/localstack/services/apigateway/apigateway_listener.py#L86

Really appreciate your help on this.

Thanks 

return get_cors_response(headers)
                return make_error('Unable to find integration for path %s' % path, 404)
            uri = integration.get('uri')
            if method == 'POST' and integration['type'] == 'AWS':
                if uri.endswith('kinesis:action/PutRecords'):
                    template = integration['requestTemplates'][APPLICATION_JSON]
                    new_request = aws_stack.render_velocity_template(template, data)
                    
                    headers = aws_stack.mock_aws_request_headers(service='kinesis')
                    headers['X-Amz-Target'] = kinesis_listener.ACTION_PUT_RECORDS
                    result = common.make_http_request(url=TEST_KINESIS_URL,
                        method='POST', data=new_request, headers=headers)
                    return result
                elif uri.startswith('arn:aws:apigateway:') and ':sqs:path' in uri:
                    template = integration['requestTemplates'][APPLICATION_JSON]
                    account_id, queue = uri.split('/')[-2:]
                    region_name = uri.split(':')[3]
                    new_request = aws_stack.render_velocity_template(template, data) + '&QueueName=%s' % queue
                    headers = aws_stack.mock_aws_request_headers(service='sqs', region_name=region_name)
                    url = urljoin(TEST_SQS_URL, '%s/%s?%s' % (account_id, queue, new_request))
                    result = common.make_http_request(url, method='GET', headers=headers)
                    return result
                else:
                    msg = 'API Gateway action uri "%s" not yet implemented' % uri
                    LOGGER.warning(msg)
                    return make_error(msg, 404)
            elif integration['type'] == 'AWS_PROXY':
                if uri.startswith('arn:aws:apigateway:') and ':lambda:path' in uri:
                    func_arn = uri.split(':lambda:path')[1].split('functions/')[1].split('/invocations')[0]