从 CDK 中的资产创建的 AWS Lambda 抛出 Class 未找到异常

AWS Lambda created from assets in CDK throws Class not found exception

我正在尝试使用 Java 的 AWS CDK 创建和上传 lambda。以下代码是我用来在 Stack 中创建 lambda 的代码。但是,这会在尝试 运行 lambda 时引发 java.lang.ClassNotFoundException

    private fun createUserLambda(): Function {
        val dirPath = System.getProperty("user.dir")
        val lambdaDir = File("$dirPath/src/com/test/lambda")
        val props = FunctionProps.builder()
            .code(Code.fromAsset(File(lambdaDir, "handler").toString()))
            .handler(AddUser::class.java.canonicalName + "::" + AddUser::handleRequest.name)
            .runtime(Runtime.JAVA_8)
            .build()
        return Function(this, "UserCreateLambda", props)
    }

我可以看到代码存在,我从创建的包含资产的 S3 存储桶下载 zip 文件。不完全确定这里缺少什么,但将不胜感激任何帮助!谢谢

您的 Code.fromAsset() 调用似乎创建了源文件工件。 Lambda 需要用于 Java 运行时的已编译 jar。