【发布时间】:2020-09-25 22:12:00
【问题描述】:
我正在尝试使用适用于 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 文件的代码。不完全确定这里缺少什么,但任何帮助将不胜感激!谢谢
【问题讨论】:
-
嗨@AsadSMalik 你能解决你的问题吗?我也面临同样的问题
-
是的,接受的答案解决了它
-
太棒了。您是否使用 Code.fromAsset() 以及指向 jar 或使用
CfnParametersCode.fromCfnParameters();来创建代码对象,如他们的示例文档中所示 docs.aws.amazon.com/cdk/latest/guide/codepipeline_example.html -
我用过
Code.fromAsset()
标签: amazon-web-services kotlin aws-lambda aws-cdk