从 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。
我正在尝试使用 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。