From e2ce897b492f125b8211671e3d08ba089fd3c330 Mon Sep 17 00:00:00 2001 From: Ali Date: Mon, 13 Apr 2026 23:12:51 +0500 Subject: [PATCH] fix(amazon): extend SQS QUEUE_REGEXP to match AWS China endpoints The QUEUE_REGEXP only matched standard amazonaws.com domains, causing SqsMessageQueueProvider.queue_matches() to return False for China region queue URLs (amazonaws.cn). Added amazonaws.cn as an alternate domain in the regex to support cn-north-1 and cn-northwest-1 regions. Fixes #65128 Signed-off-by: Ali --- .../amazon/src/airflow/providers/amazon/aws/queues/sqs.py | 2 +- providers/amazon/tests/unit/amazon/aws/queues/test_sqs.py | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/providers/amazon/src/airflow/providers/amazon/aws/queues/sqs.py b/providers/amazon/src/airflow/providers/amazon/aws/queues/sqs.py index 6ae8a00b7c9d2..8d67139576662 100644 --- a/providers/amazon/src/airflow/providers/amazon/aws/queues/sqs.py +++ b/providers/amazon/src/airflow/providers/amazon/aws/queues/sqs.py @@ -33,7 +33,7 @@ from airflow.triggers.base import BaseEventTrigger # [START queue_regexp] -QUEUE_REGEXP = r"^https://sqs\.[^.]+\.amazonaws\.com/[0-9]+/.+" +QUEUE_REGEXP = r"^https://sqs\.[^.]+\.(amazonaws\.com|amazonaws\.cn)/[0-9]+/.+" # [END queue_regexp] diff --git a/providers/amazon/tests/unit/amazon/aws/queues/test_sqs.py b/providers/amazon/tests/unit/amazon/aws/queues/test_sqs.py index 6e5c4b46a3ea2..486e8c955b836 100644 --- a/providers/amazon/tests/unit/amazon/aws/queues/test_sqs.py +++ b/providers/amazon/tests/unit/amazon/aws/queues/test_sqs.py @@ -35,10 +35,15 @@ def test_message_sqs_queue_matches(): from airflow.providers.amazon.aws.queues.sqs import SqsMessageQueueProvider provider = SqsMessageQueueProvider() + # Standard AWS regions assert provider.queue_matches("https://sqs.us-east-1.amazonaws.com/123456789012/my-queue") assert not provider.queue_matches("https://sqs.us-east-1.amazonaws.com/123456789012") assert not provider.queue_matches("https://sqs.us-east-1.amazonaws.com/123456789012/") assert not provider.queue_matches("https://sqs.us-east-1.amazonaws.com/") + # AWS China regions (cn-north-1, cn-northwest-1) + assert provider.queue_matches("https://sqs.cn-north-1.amazonaws.cn/123456789012/my-queue") + assert provider.queue_matches("https://sqs.cn-northwest-1.amazonaws.cn/123456789012/my-queue") + assert not provider.queue_matches("https://sqs.cn-north-1.amazonaws.cn/123456789012") @pytest.mark.parametrize(