From 8219d82db704b52dafb5c792f2eec3d58191d040 Mon Sep 17 00:00:00 2001 From: Gavin Zhang Date: Thu, 14 Dec 2023 16:59:27 -0800 Subject: [PATCH 1/2] fix: Allow Dynamic Reference in CodeUri Property if no / used --- samtranslator/model/s3_utils/uri_parser.py | 5 +++-- .../output/error_function_with_dynamic_ref_codeuri.json | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/samtranslator/model/s3_utils/uri_parser.py b/samtranslator/model/s3_utils/uri_parser.py index d0782224d..8a399abdf 100644 --- a/samtranslator/model/s3_utils/uri_parser.py +++ b/samtranslator/model/s3_utils/uri_parser.py @@ -88,10 +88,11 @@ def construct_s3_location_object( else: # SSM Pattern found here https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html ssm_pattern = r"{{resolve:(ssm|ssm-secure|secretsmanager):[a-zA-Z0-9_.\-/]+(:\d+)?}}" - if search(ssm_pattern, location_uri): + match = search(ssm_pattern, location_uri) + if match and match.group(0) and "/" in match.group(0): raise InvalidResourceException( logical_id, - f"Dynamic reference detected in '{property_name}'. Please " + f"Unsupported dynamic reference detected in '{property_name}'. Please " "consider using alternative 'FunctionCode' object format.", ) diff --git a/tests/translator/output/error_function_with_dynamic_ref_codeuri.json b/tests/translator/output/error_function_with_dynamic_ref_codeuri.json index 5e9f8023a..1824d9c8b 100644 --- a/tests/translator/output/error_function_with_dynamic_ref_codeuri.json +++ b/tests/translator/output/error_function_with_dynamic_ref_codeuri.json @@ -9,7 +9,7 @@ "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [MinimalFunction] is invalid. Dynamic reference detected in 'CodeUri'. Please consider using alternative 'FunctionCode' object format.", "errors": [ { - "errorMessage": "Resource with id [MinimalFunction] is invalid. Dynamic reference detected in 'CodeUri'. Please consider using alternative 'FunctionCode' object format." + "errorMessage": "Resource with id [MinimalFunction] is invalid. Unsupported dynamic reference detected in 'CodeUri'. Please consider using alternative 'FunctionCode' object format." } ] } From 0e689541f83ed9409d605acea0807c96dbc14a03 Mon Sep 17 00:00:00 2001 From: Gavin Zhang Date: Thu, 14 Dec 2023 17:25:59 -0800 Subject: [PATCH 2/2] Update text to reflect changes --- .../output/error_function_with_dynamic_ref_codeuri.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/translator/output/error_function_with_dynamic_ref_codeuri.json b/tests/translator/output/error_function_with_dynamic_ref_codeuri.json index 1824d9c8b..df69899b5 100644 --- a/tests/translator/output/error_function_with_dynamic_ref_codeuri.json +++ b/tests/translator/output/error_function_with_dynamic_ref_codeuri.json @@ -3,10 +3,10 @@ "Invalid Serverless Application Specification document. ", "Number of errors found: 1. ", "Resource with id [MinimalFunction] is invalid. ", - "Dynamic reference detected in 'CodeUri'. ", + "Unsupported dynamic reference detected in 'CodeUri'. ", "Please consider using alternative 'FunctionCode' object format." ], - "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [MinimalFunction] is invalid. Dynamic reference detected in 'CodeUri'. Please consider using alternative 'FunctionCode' object format.", + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [MinimalFunction] is invalid. Unsupported dynamic reference detected in 'CodeUri'. Please consider using alternative 'FunctionCode' object format.", "errors": [ { "errorMessage": "Resource with id [MinimalFunction] is invalid. Unsupported dynamic reference detected in 'CodeUri'. Please consider using alternative 'FunctionCode' object format."