java lambda出错_使用 Java Lambda 函数排查“ClassNotFoundExeption”错误

使用 CI/CD 管道时检查是否存在问题

如果您正在使用持续集成和持续交付 (CI/CD) 管道来打包和部署您的函数,请验证以下内容:

打包函数时,所有必需的依赖关系都捆绑在一起。

所有引用的依赖关系版本都正确无误。

存在任何必需的 Amazon 简单存储服务 (Amazon S3) 存储桶 URL,并指向文件的最新版本。

注意: 仅当您使用 Amazon S3 存储桶源且启用存储桶版本控制时,才需要 Amazon S3 存储桶 URL。

代码更改是在部署处理程序配置更改之前部署的。

注意: Lambda 没有在一个原子更改中更新代码和配置的机制。

检查是否存在类文件问题

针对“ClassNotFoundException”错误中指定的类验证以下内容:

它包含在部署程序包中。如果找不到该类,则在您创建部署程序包时,该类可能尚未捆绑。

其捆绑的类名称与函数的处理程序值相同。例如,如果函数处理程序值为“com.amazonaws.lambda.demo.LambdaFunctionHandler”,则 Lambda 要求函数目录“/com/amazonaws/demo/”中的类名为“LambdaFunctionHandler.class”。有关更多信息,请参阅采用 Java 编写的 AWS Lambda 函数处理程序。

它位于 /lib 或根目录中。

其位置在 Java CLASSPATH 环境变量中指定。

如果将其引用为 Lambda 层,则其内容不会提取到除 java/lib 以外的目录中。

它与函数打包的类的版本相同。否则,请检查您的本地计算机的版本是否与您打包的版本不同。

检查是否存在 JAR 文件问题

确认您的函数是按预期在本地计算机上运行,还是从 AWS 无服务器应用程序模型 (AWS SAM) 应用程序执行。如果函数仅在从 Lambda 调用时失败,则引用的依赖关系(JAR 文件)可能会出现问题。

提示:考虑使用 Eclipse 集成开发环境 (IDE) 来构建 Java Lambda 函数。使用 Eclipse 中可用的插件创建项目会自动为项目配置正确的版本。有关更多信息,请参阅将 Lambda 与 AWS Toolkit for Eclipse 配合使用。

对位于本地目录中并在 Java CLASSPATH 环境变量中指定的 JAR 文件验证以下内容:

这些文件包含在函数的部署程序包中。如果找不到引用的 JAR 文件,则在您创建部署程序包时,这些文件可能尚未绑定。

文件版本与部署程序包中的文件版本相同。

如果文件丢失或其版本不正确,请将所有依赖关系(JAR 文件)复制到 /lib 或根目录。请确保引用正确的版本。然后,上传压缩的内容。

注意: 如果您使用的是 Apache Maven 或 Gradle 等构建工具,请确保在构建部署构件时使用所需的插件。例如,Apache Maven Shade 插件。

检查权限问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值