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..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,13 +3,13 @@ "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. 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." } ] }