<!-- 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)
return "%s-%s-%s" % (stack_name, resource_name or resource_id, short_uid())
    
    if res_type == "AWS::Lambda::EventSourceMapping" and not props.get("StartingPosition"):
        props["StartingPosition"] = "LATEST"
    elif res_type == "AWS::Logs::LogGroup" and not props.get("LogGroupName") and resource_name:
        props["LogGroupName"] = resource_name
    elif res_type == "AWS::Lambda::Function" and not props.get("FunctionName"):
        props["FunctionName"] = "{}-lambda-{}".format(stack_name[:45], short_uid())
    elif res_type == "AWS::SNS::Topic" and not props.get("TopicName"):
        props["TopicName"] = "topic-%s" % short_uid()
    elif res_type == "AWS::SQS::Queue" and not props.get("QueueName"):
        props["QueueName"] = "queue-%s" % short_uid()
    elif res_type == "AWS::SQS::QueuePolicy" and not resource.get("PhysicalResourceId"):
        resource["PhysicalResourceId"] = _generate_res_name()
    elif res_type == "AWS::IAM::ManagedPolicy" and not resource.get("ManagedPolicyName"):
        resource["ManagedPolicyName"] = _generate_res_name()