java - 如何在 AWS Lambda 运行时查看实际的 Java 依赖项/库
问题描述
我有自定义逻辑,它定义了杰克逊应该如何序列化和反序列化 AWS lambda 函数中的域对象。AWS lambda 函数使用 AWS lambda 运行时 java 11(amazon-corretto-11) 部署在 AWS 上。在本地测试但在 AWS 中测试时,序列化工作正常。
您如何找出 AWS lambda 运行时中实际使用的 Java 依赖项以及依赖项的哪个版本?
在我的具体情况下,我想找出杰克逊依赖项的版本。
解决方案
与其尝试对可能几乎不可行的运行时进行逆向工程,不如尝试关注您的问题:运行时提供的序列化不起作用。
您可以做的是重构您的处理程序函数以不接受您的类的对象(这样,反序列化发生在运行时并且您获得 POJO),而是原始请求(如果您使用的是 API Gateway ,则使用APIGatewayProxyRequestEvent
from )com.amazonaws:aws-lambda-java-events
或一个InputStream
. 这样,您将获得原始有效负载,然后您可以根据需要对其进行解析。在 Java 中的 AWS Lambda 函数处理程序中阅读更多信息。您还需要在部署包中包含您的依赖项(谷歌为“fat jar”)。
推荐阅读
- c# - C# Razor 替换函数
- sas - 在 SAS 中将每日数据转换为每周数据
- java - Spring Security 和 Angular 6 HTTPS 请求
- php - Symfony 2 表单主题相关实体
- javascript - 如何从 5 天天气预报 JS 中获取当天的最低和最高温度?
- c# - 模拟的 SignInManager 没有按预期工作
- html - 如何使旁边的列随着并行列中内容的大小而增长
- npm - npm 错误!代码 E407 需要代理身份验证
- ssl - 证书管理器使用 gitlab autodevops 无法进入 kubernetes 集群
- ios - 无法使用 json 数据填充 UITableview