"""Sentry common functions.""" from secrets_manager.lambda_ext import LambdaSecretsManager import sentry_sdk from sentry_sdk.integrations.aws_lambda import AwsLambdaIntegration def init_for_lambda(lambda_name, env): """Initialize sentry for given lambda name. The SENTRY_DSN is taken from secrets manger. Note: It does nothing if run in test environment. """ if env == 'test' or env == 'dev': return secrets_manager_client = LambdaSecretsManager( service_name=lambda_name, environment=env) sentry_sdk.init( dsn=secrets_manager_client.get_cred('SENTRY_DSN'), environment=env, integrations=[AwsLambdaIntegration()]) def capture_exception(exception=None): """Send exception to Sentry.""" sentry_sdk.capture_exception(exception)