aws / aws-lambda-python-runtime-interface-client

Apache License 2.0
262 stars 74 forks source link

Feature Request: Disable lambda_unhandled_exception_warning_message #139

Open packplusplus opened 5 months ago

packplusplus commented 5 months ago

The lambda_unhandled_exception_warning_message (LAMBDA_WARNING: Unhandled exception...) is ~ 633 chars and adds little value to our debugging. I understand the desire to warn people the runtime may have changed underfoot, and that's why their code is raising exceptions, but I'd like a way to disable it.

A pr from me would probably be something like

_disable_unhandled_exception_warning = bool(os.environ.get("AWS_LAMBDA_EXCEPTION_WARNING_DISABLE"))
# SNIP ...
if _disable_unhandled_exception_warning:
        from .lambda_literals import lambda_unhandled_exception_warning_message

        log_sink.log(lambda_unhandled_exception_warning_message, _WARNING_FRAME_TYPE)

log_error(error_result, log_sink)
lambda_runtime_client.post_invocation_error(
    invoke_id, to_json(error_result), to_json(xray_fault)
)

near https://github.com/aws/aws-lambda-python-runtime-interface-client/blob/056aa365b6b986b0f413d031f054598064df603e/awslambdaric/bootstrap.py#L217

Perhaps you have a different idea? Or maybe this is a non-starter. Didn't want to clutter PRs before asking.

tlinhart commented 4 days ago

Another reason one might want to disable this message is that CloudWatch merges this warning with the actual error and handles it as a single log event. When using ALC with JSON log format, this makes it hard to parse the log event as JSON (in my case it's streamed to Grafana Loki).

image