I'm currently working on a process by which a kinesis stream triggers a lambda function to process a batch of records.  Whenever the `putRecords` method is used with a large amount of records, the call to trigger the lambda will fail b/c the argument list is too long.  The command is:

```
CONTAINER_ID="$(docker create  -e AWS_LAMBDA_FUNCTION_INVOKED_ARN="$AWS_LAMBDA_FUNCTION_INVOKED_ARN" -e AWS_LAMBDA_FUNCTION_NAME="$AWS_LAMBDA_FUNCTION_NAME" -e AWS_LAMBDA_EVENT_BODY="$AWS_LAMBDA_EVENT_BODY" -e AWS_LAMBDA_FUNCTION_VERSION="$AWS_LAMBDA_FUNCTION_VERSION" -e LOCALSTACK_HOSTNAME="$LOCALSTACK_HOSTNAME"  "lambci/lambda:nodejs8.10" "index.handler")"
```

Instead of sending the event body to the lambda via an argument list, the body should be written to a file that is then copied into the docker and then the command should reference the file  in the arguments list.

<!-- Love localstack? Please consider supporting our collective:
👉  https://opencollective.com/localstack/donate -->
if '__server__' in API_SERVERS:
        return API_SERVERS['__server__']['thread']
    port = port or MULTI_SERVER_PORT
    API_SERVERS['__server__'] = config = {'port': port}
    LOG.info('Starting multi API server process on port %s' % port)
    cmd = '"%s" "%s" %s' % (sys.executable, __file__, port)
    env_vars = {
        'PYTHONPATH': '.:%s' % constants.LOCALSTACK_ROOT_FOLDER
    }
    thread = ShellCommandThread(cmd, outfile=subprocess.PIPE, env_vars=env_vars,
        inherit_cwd=True)
    thread.start()
    TMP_THREADS.append(thread)
    config['thread'] = thread
    wait_for_port_open(port, retries=10, sleep_time=1)
    return thread
def main():
    setup_logging()
    port = int(sys.argv[1]) if len(sys.argv) > 0 else MULTI_SERVER_PORT
    start_server(port)
if __name__ == '__main__':
    main()