Skip to content

Commit daf5a19

Browse files
committed
fix: merge pseudo-parameters in sam_template_validator before expansion
expand_language_extensions was called with only self.parameter_overrides, missing pseudo-parameters (AWS::Region, AWS::AccountId, etc.). Every other caller merges IntrinsicsSymbolTable.DEFAULT_PSEUDO_PARAM_VALUES first. Without pseudo-params, templates using Ref: AWS::Region in Fn::ForEach collections or Fn::Sub expressions would fail during sam validate but work correctly with sam build and sam package.
1 parent 892663a commit daf5a19

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

samcli/lib/translate/sam_template_validator.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from samcli.commands.validate.lib.exceptions import InvalidSamDocumentException
1616
from samcli.lib.cfn_language_extensions.sam_integration import expand_language_extensions
1717
from samcli.lib.cfn_language_extensions.utils import is_foreach_key
18+
from samcli.lib.intrinsic_resolver.intrinsics_symbol_table import IntrinsicsSymbolTable
1819
from samcli.lib.utils.packagetype import IMAGE, ZIP
1920
from samcli.lib.utils.resources import AWS_SERVERLESS_FUNCTION
2021
from samcli.yamlhelper import yaml_dump
@@ -87,7 +88,9 @@ def get_translated_template_if_valid(self):
8788
)
8889

8990
# Process language extensions before validation if AWS::LanguageExtensions transform is present
90-
result = expand_language_extensions(self.sam_template, parameter_values=self.parameter_overrides)
91+
parameter_values = dict(IntrinsicsSymbolTable.DEFAULT_PSEUDO_PARAM_VALUES)
92+
parameter_values.update(self.parameter_overrides)
93+
result = expand_language_extensions(self.sam_template, parameter_values=parameter_values)
9194
if result.had_language_extensions:
9295
self.sam_template = result.expanded_template
9396

0 commit comments

Comments
 (0)