diff --git a/aws_lambda_powertools/utilities/data_classes/sqs_event.py b/aws_lambda_powertools/utilities/data_classes/sqs_event.py index 1b93a775bca..7d0dbe49352 100644 --- a/aws_lambda_powertools/utilities/data_classes/sqs_event.py +++ b/aws_lambda_powertools/utilities/data_classes/sqs_event.py @@ -133,6 +133,18 @@ def aws_region(self) -> str: """aws region eg: us-east-1""" return self["awsRegion"] + @property + def queue_url(self) -> str: + """The URL of the queue.""" + arn_parts = self["eventSourceARN"].split(":") + region = arn_parts[3] + account_id = arn_parts[4] + queue_name = arn_parts[5] + + queue_url = f"https://sqs.{region}.amazonaws.com/{account_id}/{queue_name}" + + return queue_url + class SQSEvent(DictWrapper): """SQS Event diff --git a/tests/functional/test_data_classes.py b/tests/functional/test_data_classes.py index 5e2aad30e8e..37b934d478e 100644 --- a/tests/functional/test_data_classes.py +++ b/tests/functional/test_data_classes.py @@ -779,6 +779,7 @@ def test_seq_trigger_event(): assert record.md5_of_body == "e4e68fb7bd0e697a0ae8f1bb342846b3" assert record.event_source == "aws:sqs" assert record.event_source_arn == "arn:aws:sqs:us-east-2:123456789012:my-queue" + assert record.queue_url == "https://sqs.us-east-2.amazonaws.com/123456789012/my-queue" assert record.aws_region == "us-east-2"