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

CDK v2中使用CfnInclude报错:资源引用不存在的Condition

解决CDK引入外部模板时条件不存在的问题

问题原因

用CfnInclude引入的外部CloudFormation模板会被独立解析,默认不会自动关联主CDK栈中创建的条件,因此外部模板里引用的IsBucketEmpty条件会被判定为不存在。

解决方案

在CfnInclude的配置中,通过conditions属性将外部模板里的条件名称映射到主栈中已创建的CfnCondition对象,具体代码示例如下:

主栈中创建条件的代码

// 主模板中创建条件的示例代码
const isBucketEmptyCondition = new CfnCondition(this, 'IsBucketEmpty', {
  expression: Fn.conditionEquals(Fn.ref('YourParameterName'), 'true'), // 替换为你的实际条件表达式
});

修改后的CfnInclude代码

new CfnInclude(this, 'customResources', {
  templateFile: '/path/to/below/customresource.json',
  preserveLogicalIds: false,
  // 映射外部模板的条件到主栈的条件对象
  conditions: {
    IsBucketEmpty: isBucketEmptyCondition,
  },
});

注意事项

  • 确保外部模板中引用的条件名称(此处为IsBucketEmpty)和conditions配置中的key完全一致
  • 主栈中的CfnCondition对象必须在CfnInclude之前创建,保证引用时已存在

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:18:16