<!-- Love localstack? Please consider supporting our collective:
👉  https://opencollective.com/localstack/donate -->

# Type of request: This is a ...

[ ] bug report
[x] feature request

# Detailed description
* Define a lambda function in a CDK stack (e.g. "TestStack"), giving it a descriptive ID value (e.g. "DescriptiveName")
* Deploy the CDK template (`cdklocal deploy`)
* Check the function's name in the dashboard

## Expected behavior
Function's name includes its CDK stack ID. For example, deploying the template to AWS will produce a function name of the form `<StackName>-<FunctionID><mishmash>` (e.g. TestStack-DescriptiveName8C62FF46-hXye7CyPgrc7)

## Actual behavior
Function's name has the form `<StackName>-lambda-<mishmash>` (e.g. TestStack-lambda-cb0e840d), making it more difficult to use in the localstack dashboard when there are several lambdas.

# Steps to reproduce
See detailed description

## Command used to start LocalStack
`LOCALSTACK_API_KEY=... localstack start`

## Client code (AWS SDK code snippet, or sequence of "awslocal" commands)
(none)
client.put_rest_api(restApiId=result["id"], body=to_bytes(body))
    elif resource_type == "SNS::Topic":
        subscriptions = resource_props.get("Subscription", [])
        for subscription in subscriptions:
            if is_none_or_empty_value(subscription):
                continue
            endpoint = resolve_refs_recursively(stack_name, subscription["Endpoint"], resources)
            topic_arn = retrieve_topic_arn(resource_props["TopicName"])
            aws_stack.connect_to_service("sns").subscribe(
                TopicArn=topic_arn, Protocol=subscription["Protocol"], Endpoint=endpoint
            )
    elif resource_type == "S3::Bucket":
        tags = resource_props.get("Tags")
        if tags:
            aws_stack.connect_to_service("s3").put_bucket_tagging(
                Bucket=resource_props["BucketName"], Tagging={"TagSet": tags}
            )
    elif resource_type == "IAM::Role":
        policies = resource_props.get("Policies", [])
        for policy in policies:
            policy = policy[0] if isinstance(policy, list) and len(policy) == 1 else policy
            iam = aws_stack.connect_to_service("iam")
            if policy == PLACEHOLDER_AWS_NO_VALUE:
                continue
            if not isinstance(policy, dict):
                LOG.info(
                    'Invalid format of policy for IAM role "%s": %s'
                    % (resource_props.get("RoleName"), policy)
                )
                continue