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

使用AWS CDK CfnInclude传递参数报错:未找到Environment参数

CloudFormation模板引入时参数传递错误分析与解决

常见错误原因

  1. 参数名大小写不匹配:AWS CloudFormation参数名称是大小写敏感的。如果模板里参数定义是environment(全小写),但CDK代码里传的是Environment,就会触发找不到参数的错误。
  2. 参数传递方式错误:没有通过CfnInclude构造函数的parameters属性传递参数,而是用了其他不正确的方式(比如直接作为栈props传递)。
  3. 模板路径错误:templateFile指向的不是包含Environment参数的目标模板,导致加载的模板里根本没有这个参数定义。

正确的参数传递方式

首先确认你的CloudFormation模板里确实存在正确定义的Environment参数,示例模板片段:

Parameters:
  Environment:
    Type: String
    Description: Deployment environment (dev/staging/prod)
    AllowedValues:
      - dev
      - staging
      - prod

然后在CDK代码中通过CfnInclude的parameters属性传递参数,以TypeScript为例:

import { Stack, App } from 'aws-cdk-lib';
import { CfnInclude } from 'aws-cdk-lib/cloudformation-include';

export class MyDeploymentStack extends Stack {
  constructor(scope: App, id: string) {
    super(scope, id);

    // 引入CloudFormation模板并传递参数
    new CfnInclude(this, 'ImportedTemplate', {
      templateFile: './cfn-templates/my-existing-template.yaml',
      parameters: {
        // 键名必须和模板里的参数名完全匹配(大小写一致)
        Environment: 'dev'
      }
    });
  }
}

额外注意事项

  • 如果模板中的参数有默认值,你可以选择不传递该参数,CDK会使用模板里的默认值。
  • 传递参数时,值的类型必须符合模板中参数的定义(比如模板里是Number类型,就不能传字符串)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 18:42:08