MacOS 10.14.6 Mojave.
Node v10.15.3
LocalStack - docker image 0.10.4

When invoking a Lambda from Node.js code.


    const lambda = new Aws.Lambda(creds);
    
    const payload = {};
    
    const clientContext = {
        invokedFunctionArn: this._workerArn
    };
    
    const params = {
        FunctionName: this._workerArn,
        InvocationType: "RequestResponse", // "DryRun",
        LogType: 'Tail', // "None", "Tail"
        ClientContext: JSON.stringify(clientContext),
        Payload: JSON.stringify(payload)
    };
    
    console.log(`DEBUG: Executing lambda ${JSON.stringify(params)}`);
    
    lambda.invoke(params, function (err, data) {
        console.log(`DEBUG: Printing lambda return arguments`);
        console.log(JSON.stringify(arguments));
        console.log(data.LogResult);
    });```
DEBUG: Printing lambda return arguments
{"0":null,"1":{"StatusCode":200,"Payload":"null"}}
undefined
```

Expecting to see the Lambda execution log in `data.LogResult`, but no such object returned,
yet Localstack Cloudwatch logs recorded the execution logs correctly.


```
EVENTS	75	1570381308926.664	+51733/05/27/[$LATEST]629146bb	START RequestId: dbd86068-78c8-1a62-29ca-9c0a4a8580c3 Version: $LATEST	1570381306039
EVENTS	76	1570381308926.664	+51733/05/27/[$LATEST]629146bb	2019-10-06T17:01:47.924Z	dbd86068-78c8-1a62-29ca-9c0a4a8580c3	INFO	DEBUG: LOCALSTACK_HOSTNAME=172.17.0.1	1570381306520
...
EVENTS	79	1570381308926.664	+51733/05/27/[$LATEST]629146bb	END RequestId: dbd86068-78c8-1a62-29ca-9c0a4a8580c3	1570381307961
EVENTS	80	1570381308926.664	+51733/05/27/[$LATEST]629146bb	REPORT RequestId: dbd86068-78c8-1a62-29ca-9c0a4a8580c3	Duration: 16.05 ms	Billed Duration: 100 ms	Memory Size: 1536 MB	Max Memory Used: 57 MB		1570381308442
```

What I'm missing? Why it doesn't return logs on invoke?

Thanks



┆Issue is synchronized with this [Jira Bug](https://localstack.atlassian.net/browse/LOC-125) by [Unito](https://www.unito.io/learn-more)

""" Convert message attribute details (first characters) to lower case (e.g., stringValue, dataType). """
    message_attrs = message_attrs or {}
    for _, attr in message_attrs.items():
        if not isinstance(attr, dict):
            continue
        for key, value in dict(attr).items():
            attr[first_char_to_lower(key)] = attr.pop(key)
    return message_attrs
def process_apigateway_invocation(func_arn, path, payload, stage, api_id, headers={},
                                  resource_path=None, method=None, path_params={},
                                  query_string_params=None, request_context={}, event_context={}):
    try:
        resource_path = resource_path or path
        path_params = dict(path_params)
        fix_proxy_path_params(path_params)
        event = {
            'path': path,
            'headers': dict(headers),
            'multiValueHeaders': multi_value_dict_for_list(headers),
            'pathParameters': path_params,
            'body': payload,
            'isBase64Encoded': False,
            'resource': resource_path,
            'httpMethod': method,
            'queryStringParameters': query_string_params,