aws / aws/aws-xray-sdk-python

SDK publishes exception segment regardless whether it's handled or not

Offen
#274 5 Kommentare 1 Reaktion 1 zugewiesene Person Beansprucht von @wangzlei Auf GitHub ansehen
Vorherrschende Sprache
Python
Sterne
338
Forks
147
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

This was originally brought up in https://github.com/awslabs/aws-lambda-powertools-python/issues/334 but @heitorlessa mentioned this is could be an upstream issue here and asked me to file an Issue. The details can be found in the original issue as well but we have the following function in our lambda code:

```python
def get_secrets(secret_name) -> dict:
try:
get_secret_value_response = client.get_secret_value(SecretId=secret_name)
except ClientError as e:
if e.response["Error"]["Code"] == "ResourceNotFoundException":
if "AWSCURRENT" in e.response["Message"]:
logger.warning(f"{secret_name} exists but is empty.")
else:
logger.warning(
f"The requested secret {secret_name} was not found. Create the secret first."
)
return {}
else:
raise RuntimeError("Couldn't retrieve secrets")
else:
return json.loads(get_secret_value_response["SecretString"])
```

And in our case we continue processing if the secret exists but a value hasn't been set. In this case we're catching and handling the exception, continuing execution. However, the SDK will still flag this as an exception in X-Ray which will show the service as erroring when it actually isn't.

The relevant line is at https://github.com/aws/aws-xray-sdk-python/blob/508f929fee495710656c0c1478f8873a2e9e5666/aws_xray_sdk/core/models/subsegment.py#L70-L78

Is there a way to handle this use case?

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.