首页 > 解决方案 > 如何在 AWS Lambda 运行时查看实际的 Java 依赖项/库

问题描述

我有自定义逻辑,它定义了杰克逊应该如何序列化和反序列化 AWS lambda 函数中的域对象。AWS lambda 函数使用 AWS lambda 运行时 java 11(amazon-corretto-11) 部署在 AWS 上。在本地测试但在 AWS 中测试时,序列化工作正常。

您如何找出 AWS lambda 运行时中实际使用的 Java 依赖项以及依赖项的哪个版本?

在我的具体情况下,我想找出杰克逊依赖项的版本。

标签: javaaws-lambda

解决方案


与其尝试对可能几乎不可行的运行时进行逆向工程,不如尝试关注您的问题:运行时提供的序列化不起作用。

您可以做的是重构您的处理程序函数以不接受您的类的对象(这样,反序列化发生在运行时并且您获得 POJO),而是原始请求(如果您使用的是 API Gateway ,则使用APIGatewayProxyRequestEventfrom )com.amazonaws:aws-lambda-java-events或一个InputStream. 这样,您将获得原始有效负载,然后您可以根据需要对其进行解析。在 Java 中的 AWS Lambda 函数处理程序中阅读更多信息。您还需要在部署包中包含您的依赖项(谷歌为“fat jar”)。


推荐阅读