<!-- 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 result
        
        return match.group(0)
    regex = r"\$\{([^\}]+)\}"
    result = re.sub(regex, _replace, result)
    return result
def evaluate_condition(stack_name, condition, resources):
    condition = resolve_refs_recursively(stack_name, condition, resources)
    condition = resolve_ref(stack_name, condition, resources, attribute="Ref")
    condition = resolve_refs_recursively(stack_name, condition, resources)
    return condition
def evaluate_resource_condition(resource, stack_name, resources):
    condition = resource.get("Condition")
    if condition:
        condition = evaluate_condition(stack_name, condition, resources)
        if condition is False or condition in FALSE_STRINGS or is_none_or_empty_value(condition):
            return False
    return True
def get_stack_parameter(stack_name, parameter):
    try:
        client = aws_stack.connect_to_service("cloudformation")
        stack = client.describe_stacks(StackName=stack_name)["Stacks"]
    except Exception:
        return None
    stack = stack and stack[0]
    if not stack:
        return None
    result = [p["ParameterValue"] for p in stack["Parameters"] if p["ParameterKey"] == parameter]
    return (result or [None])[0]
def update_resource(resource_id, resources, stack_name):