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 

lambda_uri = aws_stack.lambda_function_arn(fn_name)
        invocation_uri = 'arn:aws:apigateway:%s:lambda:path/2015-03-31/functions/%s/invocations'
        target_uri = invocation_uri % (DEFAULT_REGION, lambda_uri)
        result = self.connect_api_gateway_to_http_with_lambda_proxy(
            'test_gateway2',
            target_uri,
            path=path
        )
        api_id = result['id']
        path_map = get_rest_api_paths(api_id)
        _, resource = get_resource_for_path('/lambda/foo1', path_map)
        
        path = path.replace('{test_param1}', 'foo1')
        path = path + '?foo=foo&bar=bar&bar=baz'
        url = INBOUND_GATEWAY_URL_PATTERN.format(
            api_id=api_id,
            stage_name=self.TEST_STAGE_NAME,
            path=path
        )
        data = {'return_status_code': 203, 'return_headers': {'foo': 'bar123'}}
        result = requests.post(
            url,
            data=json.dumps(data),
            headers={'User-Agent': 'python-requests/testing'}
        )
        self.assertEqual(result.status_code, 203)
        self.assertEqual(result.headers.get('foo'), 'bar123')
        parsed_body = json.loads(to_str(result.content))
        self.assertEqual(parsed_body.get('return_status_code'), 203)