I'm trying to setup an lambda function triggered by S3 events within a localstack docker-compose environment.
I've got the latest localstack image running in one service with S3, Lambda and APIGATEWAY and the second service is using `awslocal` to communicate with the localstack.

I have gotten as far as successfully creating a lambda function but when I attempt to `add-permission` I get a 404 Not Found error.

My command is:
```
awslocal lambda add-permission 
--function-name my-lambda-function 
--action lambda:InvokeFunction 
--statement-id s3 
--principal s3.amazonaws.com 
--source-arn arn:aws:s3:::event-source-bucket
```

This works against AWS so I'm not sure what I need to have setup within localstack to get it working.  Thanks for any insight you may have.
""" If LAMBDA_FALLBACK_URL is configured, forward the invocation of this non-existing
        Lambda to the configured URL. """
    if not config.LAMBDA_FALLBACK_URL:
        return None
    if config.LAMBDA_FALLBACK_URL.startswith('dynamodb://'):
        table_name = urlparse(config.LAMBDA_FALLBACK_URL.replace('dynamodb://', 'http://')).netloc
        dynamodb = aws_stack.connect_to_service('dynamodb')
        item = {
            'id': {'S': short_uid()},
            'timestamp': {'N': str(now_utc())},
            'payload': {'S': str(data)}
        }
        aws_stack.create_dynamodb_table(table_name, partition_key='id')
        dynamodb.put_item(TableName=table_name, Item=item)
        return ''
    if re.match(r'^https?://.+', config.LAMBDA_FALLBACK_URL):
        response = safe_requests.post(config.LAMBDA_FALLBACK_URL, data)
        return response.content
    raise ClientError('Unexpected value for LAMBDA_FALLBACK_URL: %s' % config.LAMBDA_FALLBACK_URL)
def not_found_error(ref=None, msg=None):