如何在AWS CloudFormation的!Sub构造字符串中使用伪参数
CloudFormation中!Sub引用伪参数的正确写法
你在!Sub里嵌套!Ref是错误用法,!Sub支持直接在${}中引用模板参数或CloudFormation伪参数,不需要额外包裹!Ref。
错误写法
Name: !Sub /${var1}/${var2}/${var3}/${!Ref AWS::StackId}/albTargetGroup
正确写法(引用AWS::StackId)
Name: !Sub /${var1}/${var2}/${var3}/${AWS::StackId}/albTargetGroup
如果你需要引用AWS::StackName(对应你最初的需求)
Name: !Sub /${var1}/${var2}/${var3}/${AWS::StackName}/albTargetGroup
!Sub会自动解析${}内的变量,包括自定义参数和AWS::StackName/AWS::StackId这类伪参数。之前的错误写法会生成不符合规则的字符串,触发了参数命名校验报错(提示中的SSM前缀问题是格式错误导致的连锁问题)。
内容的提问来源于stack exchange,提问作者tomiekawakami
相关产品推荐
相关产品推荐

