<!-- 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)
"""Convert data types in the "params" object, with the type defs
    specified in the 'types' attribute of "func_details"."""
    types = func_details.get("types") or {}
    attr_names = types.keys() or []
    def cast(_obj, _type):
        if _type == bool:
            return _obj in ["True", "true", True]
        if _type == str:
            if isinstance(_obj, bool):
                return str(_obj).lower()
            return str(_obj)
        if _type == int:
            return int(_obj)
        return _obj
    def fix_types(o, **kwargs):
        if isinstance(o, dict):
            for k, v in o.items():
                if k in attr_names:
                    o[k] = cast(v, types[k])
        return o
    result = common.recurse_object(params, fix_types)
    return result
def prepare_template_body(req_data):