升级AWS CDK至2.0后TypeScript类型错误的解决求助
解决AWS CDK 2.0中WAFv2 SingleHeader属性的类型错误问题
这个错误是因为AWS CDK 2.0对WAFv2相关的TypeScript类型定义做了命名规范调整,你需要将代码中的大写Name改为小写name。
修改后的代码片段:
const nonplclAppNames = configs['nonplclAppNames'].split(','); let nonplclAppNamesMatchingStatements: wafv2.CfnWebACL.StatementProperty[] = []; nonplclAppNames.forEach((appName: string) => { const statement: wafv2.CfnWebACL.StatementProperty = { notStatement: { statement: { byteMatchStatement: { searchString: appName, fieldToMatch: { singleHeader: { name: 'application-name' // 修正为小写name } } // 其他代码... } } } }; nonplclAppNamesMatchingStatements.push(statement); });
原因说明:
CDK 1.x版本中,部分CloudFormation资源的属性保留了原生的PascalCase(首字母大写)命名;而CDK 2.x版本统一采用了TypeScript/JavaScript标准的驼峰命名法,将SingleHeader的Name属性映射为小写的name,所以原来的大写Name不再符合类型定义要求。
内容的提问来源于stack exchange,提问作者Sagarika Madhavan
相关产品推荐
相关产品推荐

