用于创建 Lambda 的 AWS Java 开发工具包版本
Posted
技术标签:
【中文标题】用于创建 Lambda 的 AWS Java 开发工具包版本【英文标题】:AWS Java SDK Version For Creating a Lambda 【发布时间】:2019-05-04 01:43:19 【问题描述】:我正在尝试按照here 描述的指南开发 AWS Java lambda 函数,该指南描述了 RequestHandler
接口的实现,还引用了 AWS-lambda-java-core 库。但是,我尝试使用推荐的最新 SDK here,但这完全不同,RequestHandler
接口似乎不再存在。
我不清楚我需要的 java 库的名称和版本是什么。是否有关于所有不同版本的 AWS java 库以及任何更新示例的指南?我不得不承认我对 AWS Java 库版本和命名完全感到困惑,并且不完全知道我需要添加哪些/什么作为依赖项才能在 Java 中创建一个简单的 AWS Lambda 函数。
【问题讨论】:
【参考方案1】:但是我尝试使用推荐的最新 SDK here,但这完全不同,
RequestHandler
接口似乎不再存在。
您使用了错误的依赖项。这是一个通过其 REST API 使用 AWS 服务的 SDK,例如:
将对象放入 S3 列出 EC2 实例 从 AWS DynamoDB 中删除项目 调用 Lambda …即这是一个用于处理各种 AWS 服务的 SDK。它由许多库组成,例如aws-java-sdk-s3
、aws-java-sdk-dynamodb
。 aws-java-sdk-lambda
是其中之一,但它用于与 Lambda API 交互,而不是用于编写 Lambda。
编写 Lambda 所需的库是:
com.amazonaws:aws-lambda-java-core
com.amazonaws:aws-lambda-java-events
如您所见,它们是不同的。首先提供您正在寻找的Handler
接口,然后包含Lambda 可以接受的各种事件作为输入:SNS 事件、CloudWatch 计时器和so on。
【讨论】:
【参考方案2】:来自here:
Lambda 支持两种创建处理程序的方法:
直接加载处理程序方法,无需实现接口。本节介绍了这种方法。
实现作为 aws-lambda-java-core 库的一部分提供的标准接口(接口方法)。有关更多信息,请参阅利用预定义接口创建处理程序 (Java)。
这里是aws-lambda-java-core
【讨论】:
这个库是 sdk 库的一部分吗?我还应该在我的问题中说,我正在尝试遵循此处的建议以使用 Maven BOM:docs.aws.amazon.com/sdk-for-java/v2/developer-guide/… 您能否为您的方法“直接加载处理程序方法而无需实现接口。本节描述此方法”链接或显示一个示例。我从来没有见过这样做的,我不确定这是否在任何地方都有记录。【参考方案3】:我有类似的问题,如何找到适用于 AWS JDK V2 的新依赖项和版本?
我以前用过
<!-- original working fine with V1 -->
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-lambda</artifactId>
<version>1.10.21</version>
<groupId>software.amazon.awssdk</groupId>
<artifactId>lambda</artifactId>
<version>2.16.60</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-core</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-events</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-log4j</artifactId>
<version>1.0.0</version>
</dependency>
AWS JDK V2 (software.amazon.awssdk) 中这些依赖项的等效项是什么?
【讨论】:
以上是关于用于创建 Lambda 的 AWS Java 开发工具包版本的主要内容,如果未能解决你的问题,请参考以下文章