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

AWS CDK Stack部署失败报错,原因不明该如何排查?

AWS CDK部署Lambda时出现"Cannot invoke String.contains..."错误的原因

问题重现

执行cdk synth可正常生成CloudFormation模板,但执行cdk deploy时触发回滚,错误信息如下:

❌  CdkImmersion2HelloCdkStack failed: Error: The stack named CdkImmersion2HelloCdkStack 
failed to deploy: UPDATE_ROLLBACK_COMPLETE: Resource handler returned message: "Cannot 
invoke "String.contains(java.lang.CharSequence)" because "errorMsg" is null" 
(RequestToken: <some-token>, HandlerErrorCode: InternalFailure)

关联代码

CDK栈代码:

import * as cdk from "aws-cdk-lib";
import { Code, Function, Runtime } from "aws-cdk-lib/aws-lambda";
import { Construct } from "constructs";

export class CdkImmersion2HelloCdkStack extends cdk.Stack {
  constructor(scope: Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    // defines an AWS Lambda resource
    const hello = new Function(this, "HelloHandler", {
      runtime: Runtime.NODEJS_18_X, // execution environment
      code: Code.fromAsset("lambda"), // code loaded from "lambda" directory
      handler: "hello.handler", // file is "hello", function is "handler"
    });
  }
}

Lambda函数代码(应存放于lambda/hello.js):

exports.handler = async function (event) {
  console.log("request:", JSON.stringify(event, undefined, 2));
  return {
    statusCode: 200,
    headers: { "Content-Type": "text/plain" },
    body: `Hello, CDK! You've hit ${event.path}\n`,
  };
};

错误原因

这个InternalFailure级别的错误属于CloudFormation资源处理逻辑的空指针异常,常见触发场景包括:

  • Lambda代码包路径无效:检查项目根目录下是否存在lambda文件夹,且该文件夹内是否有hello.js文件。如果路径不存在或文件缺失,资源处理器在读取代码包时会因内部逻辑未处理空值而抛出此错误。
  • CDK依赖版本兼容问题:部分旧版本的aws-cdk-lib对Node.js 18.x runtime的适配存在bug,导致部署时资源处理流程出错。建议更新CDK核心包至稳定版本,或尝试切换到Node.js 16.x runtime测试。
  • 本地缓存或权限异常:CDK本地缓存损坏、或部署使用的AWS凭证缺少Lambda创建/部署权限,也可能触发此类内部错误。可执行cdk clean清理缓存后重新部署,同时确认凭证拥有lambda:*相关权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 03:02:22