本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
故障排除 AWS CloudFormation Guard
如果您在使用时遇到问题 AWS CloudFormation Guard,请查阅本节的主题。
当选定类型的资源不存在时,子句失败
当查询使用过滤器时Resources.*[ Type == 'AWS::ApiGateway::RestApi'
]
,如果输入中没有AWS::ApiGateway::RestApi
资源,则子句的计算结果为。FAIL
%api_gws.Properties.EndpointConfiguration.Types[*] == "PRIVATE"
为避免出现这种结果,请为变量分配过滤器并使用when
条件检查。
let api_gws = Resources.*[ Type == 'AWS::ApiGateway::RestApi' ] when %api_gws !empty { ...}
Guard 不评估带有简短引用的 CloudFormation 模板 Fn::GetAtt
Guard 不支持内部函数的简短形式。例如,不支持!Sub
在 YAML 格式的 AWS CloudFormation 模板中使用!Join
。相反,请使用 CloudFormation 内部函数的扩展形式。例如,在根据 Guard 规则评估 CloudFormation 模板时Fn::Join
,Fn::Sub
在 YAML 格式的模板中使用。
有关内部函数的更多信息,请参阅《用户指南》中的内部函数参考。AWS CloudFormation