You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CloudFormation组合Sub/ImportValue等函数的YAML格式问题排查

问题原因与修正方案

你的代码报错是因为CloudFormation函数嵌套时的YAML格式不正确。在YAML中,Fn::ImportValue需要接收一个单一值(字符串或另一个函数的输出),但你当前的写法把Fn::Sub当作了Fn::ImportValue的键,而非它的参数值,导致解析失败。

修正后的代码写法

写法一:使用短格式函数嵌套

SubnetId: !Select [0, !Split [",", !ImportValue !Sub '${TemplateName}-SubnetIds']]

写法二:使用长格式函数明确层级

SubnetId: !Select [0, !Split [",", { Fn::ImportValue: { Fn::Sub: '${TemplateName}-SubnetIds' } }]]

写法三:缩进式长格式(可读性更强)

SubnetId: !Select 
  - 0
  - !Split 
    - ","
    - !ImportValue 
        !Sub '${TemplateName}-SubnetIds'

关键说明

  • 嵌套CloudFormation函数时,必须确保内层函数是外层函数的参数值,而非同级键。
  • 短格式函数(!开头)可直接连续嵌套,长格式则需要用大括号或缩进明确层级关系,避免YAML解析歧义。

内容的提问来源于stack exchange,提问作者Fayaz Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 01:42:13