I'm trying to use below AWS services using  docker-compose which looks like below:
version: '2.1'

```
services:
  localstack:
    container_name: localstack-main
    image: localstack/localstack
    ports:
      - "4566-4599:4566-4599"
      - "9000:9000"
    environment:
      - SERVICES=sns,sqs,iam,sts or sns:4575,sqs:4576 etc.
      - DEBUG=1
      - DEFAULT_REGION=eu-west-1
      - DATA_DIR=/tmp/localstack/data
      - AWS_ACCESS_KEY_ID=dummyaccess
      - AWS_SECRET_ACCESS_KEY=dummysecret
      - DOCKER_HOST=unix:///var/run/docker.sock
      - HOST_TMP_FOLDER=/tmp
      - SNS_PORT=4575
      - SQS_PORT=4576
      - IAM_PORT=4593
      - STS_PORT=4592
    volumes:
      - /tmp/localstack:/tmp/localstack
      - "/var/run/docker.sock:/var/run/docker.sock"
```
what is best way to access each services of AWS:
below works fine
```
aws sqs create-queue --endpoint-url=http://localhost:4566 --queue-name my_queue
{
    "QueueUrl": "http://localhost:4566/queue/my_queue"
}
```
as well as
```
aws sqs create-queue --endpoint-url=http://localhost:4576 --queue-name my_queue_1
{
    "QueueUrl": "http://localhost:4576/queue/my_queue_1"
}
```
which ones I should use, my understanding is each service port will be disabled or not available in future.only customised edge_port will be available . 
also if I click both of the QueueUrl posted above , I get below in my docker
```
localstack-main | 2020-05-18T19:58:33:INFO:localstack.services.edge: Unable to find forwarding rule for host "localhost:4566", path "/queue/my_queue_1", target header "", auth header ""
localstack-main | 2020-05-18T20:01:28:INFO:localstack.services.edge: Unable to find forwarding rule for host "localhost:4566", path "/queue/my_queue", target header "", auth header ""
```
also in my data folder, the `recorded_api_calls.json` is empty, even though I called to `create-queue`.  
Which gives me also a feeling that my setup is not quite right? or may be I'm wrong. 
can anyone share a thought on customised docker compose which is quite acceptable by localstack. 
Also, I can't access the dashboard using port 9000(in my docker-compose). how can I access the dashboard? 
BTW,  when I click only `http://localhost:4566 `--> it shows `{"status": "running"}`
""" make sure the keys of a JSON are strings (not binary type or other) """
    item_copy = item
    if isinstance(item, list):
        item_copy = []
        for i in item:
            item_copy.append(fix_json_keys(i))
    if isinstance(item, dict):
        item_copy = {}
        for k, v in item.items():
            item_copy[to_str(k)] = fix_json_keys(v)
    return item_copy
def canonical_json(obj):
    return json.dumps(obj, sort_keys=True)
def save_file(file, content, append=False):
    mode = 'a' if append else 'w+'
    if not isinstance(content, six.string_types):
        mode = mode + 'b'
    with open(file, mode) as f:
        f.write(content)
        f.flush()
def load_file(file_path, default=None, mode=None):
    if not os.path.isfile(file_path):
        return default
    if not mode:
        mode = 'r'
    with open(file_path, mode) as f:
        result = f.read()
    return result
def to_str(obj, encoding=DEFAULT_ENCODING, errors='strict'):