<!-- Love localstack? Please consider supporting our collective:
👉  https://opencollective.com/localstack/donate -->
We have several Kinesis streams set up with event notifications that trigger lambdas.  When the LAMBDA_EXECUTOR is set to 'docker' and we send a large number or records to Kinesis, multiple Lambdas will execute, but currently they are failing to create with error:

```
Exception: Lambda process returned error status code: 1. Output:
time="2019-09-18T17:28:11Z" level=error msg="error getting events from daemon: net/http: request canceled" 
Error response from daemon: driver failed programming external connectivity on endpoint busy_sanderson (a78e45a41d0ce5b0d8bab6ff54344fc34fe2b4969f55bf568e753121abc8759e): Bind for 0.0.0.0:38763 failed: port is already allocated
```

I believe this is due to the new debug_java_port introduced with this PR https://github.com/localstack/localstack/pull/1523

With this change, you are setting the port in the constructor by using a method known to have a race condition (https://github.com/localstack/localstack/blob/master/localstack/utils/common.py#L354)
(https://gist.github.com/gabrielfalcao/20e567e188f588b65ba2)

This should be changed to ensure unique ports are being issued across all lambdas


import os
import sys
import ssl
import json
import socket
import inspect
import logging
import traceback
import click
import requests
from ssl import SSLError
from flask_cors import CORS
from requests.structures import CaseInsensitiveDict
from requests.models import Response, Request
from six import iteritems
from six.moves.socketserver import ThreadingMixIn
from six.moves.urllib.parse import urlparse
from six.moves.BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
from localstack.config import TMP_FOLDER, USE_SSL, EXTRA_CORS_ALLOWED_HEADERS, EXTRA_CORS_EXPOSE_HEADERS
from localstack.constants import ENV_INTERNAL_TEST_RUN
from localstack.utils.common import FuncThread, generate_ssl_cert, to_bytes
QUIET = False
SERVER_CERT_PEM_FILE = '%s/server.test.pem' % (TMP_FOLDER)