From 84b2d3ee58dbda2e3a8108c2790f2eac0ca0fd63 Mon Sep 17 00:00:00 2001 From: James Saryerwinnie Date: Mon, 21 Sep 2020 12:55:50 -0400 Subject: [PATCH] improv: disable tracer when using the Chalice CLI --- aws_lambda_powertools/tracing/tracer.py | 3 ++- tests/functional/test_tracing.py | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/aws_lambda_powertools/tracing/tracer.py b/aws_lambda_powertools/tracing/tracer.py index 25caacb651e..0aab57ee39a 100644 --- a/aws_lambda_powertools/tracing/tracer.py +++ b/aws_lambda_powertools/tracing/tracer.py @@ -622,6 +622,7 @@ def _is_tracer_disabled() -> bool: """ logger.debug("Verifying whether Tracing has been disabled") is_lambda_sam_cli = os.getenv("AWS_SAM_LOCAL") + is_chalice_cli = os.getenv("AWS_CHALICE_CLI_MODE") env_option = str(os.getenv("POWERTOOLS_TRACE_DISABLED", "false")) disabled_env = strtobool(env_option) @@ -629,7 +630,7 @@ def _is_tracer_disabled() -> bool: logger.debug("Tracing has been disabled via env var POWERTOOLS_TRACE_DISABLED") return disabled_env - if is_lambda_sam_cli: + if is_lambda_sam_cli or is_chalice_cli: logger.debug("Running under SAM CLI env or not in Lambda env; disabling Tracing") return True diff --git a/tests/functional/test_tracing.py b/tests/functional/test_tracing.py index 59b93789907..577d37aeffb 100644 --- a/tests/functional/test_tracing.py +++ b/tests/functional/test_tracing.py @@ -61,6 +61,20 @@ def handler(event, context): handler({}, {}) +def test_tracer_chalice_cli_mode(monkeypatch, dummy_response): + # GIVEN tracer runs locally + monkeypatch.setenv("AWS_CHALICE_CLI_MODE", "true") + tracer = Tracer() + + # WHEN a lambda function is run through the Chalice CLI. + @tracer.capture_lambda_handler + def handler(event, context): + return dummy_response + + # THEN tracer should run in disabled mode, and not raise an Exception + handler({}, {}) + + def test_tracer_metadata_disabled(dummy_response): # GIVEN tracer is disabled, and annotations/metadata are used tracer = Tracer(disabled=True)