gpt4 book ai didi

amazon-web-services - 如何使用 AWS SDK for Java 2.0 创建 Lambda 函数

转载 作者:行者123 更新时间:2023-12-01 01:43:32 25 4
gpt4 key购买 nike

如何使用 AWS SDK for Java 2.0 创建 Lambda 函数? Usinx SDK 1.x,我可以使用以下方法:

public String handleRequest(S3Event s3event, Context context) {
System.out.println("do stuff");
return "success";
}

使用 java SDK 2.x,我似乎找不到 S3Event 和 Context 对象的等效依赖项?如果有人能指出我的例子,我将不胜感激。或者,如果 2.x 还不够成熟来处理 lambda,我应该坚持使用 SDK 1.x 吗?

最佳答案

S3EventAWS Lambda Java Events 的一部分图书馆在哪里ContextAWS Lambda Java Core 的一部分.当您包含事件库时,您确实会引入 1.x Java SDK。但是,如果您使用 Java Stream版本的 Lambda 处理程序,您可以移除对事件库的依赖,从而消除您对 1.x SDK 的需求。您的代码如下所示:

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
import com.jayway.jsonpath.JsonPath;


public class S3EventLambdaHandler implements RequestStreamHandler {
public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) {

try {
List<String> keys = JsonPath.read(inputStream, "$.Records[*].s3.object.key");

for( String nextKey: keys )
System.out.println(nextKey);
}
catch( IOException ioe ) {
context.getLogger().log("caught IOException reading input stream");
}
}
}

然后您可以自己阅读 S3Event 中的 JSON。实际上,您是在代码中对 S3Event 进行序列化,而不是让 Amazon 库来完成。

显然最大的缺点是你必须自己序列化事件。可以在 here 中找到 JSON 格式的示例 S3 事件.

上面的例子使用 JsonPath在这种情况下,从事件中拉出 key 。删除 Lambda 事件库后,您会惊讶于自己的 Lambda 代码小了多少。

关于amazon-web-services - 如何使用 AWS SDK for Java 2.0 创建 Lambda 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53820397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com