gpt4 book ai didi

java - AWS Lambda RequestHandler 用于无效输出

转载 作者:行者123 更新时间:2023-11-30 01:53:31 25 4
gpt4 key购买 nike

考虑一个用 Java 编写的简单 Lambda:

import com.amazonaws.services.lambda.runtime.Context; 
import com.amazonaws.services.lambda.runtime.RequestHandler;

public class Hello implements RequestHandler<Integer, String>{
public String handleRequest(int myCount, Context context) {
return String.valueOf(myCount);
}
}

处理程序接口(interface)定义为 RequestHandler<InputType, OutputType> ,但是当我的 Lambda 对事件使用react并且只是产生一些副作用时,输出类型是不必要的,我必须编写如下内容:

public class Hello implements RequestHandler<SNSEvent, Void>{
public Void handleRequest(SNSEvent snsEvent, Context context) {
...
return null;
}
}

这很烦人。

是否有 RequestHandler 的替代方案对于void处理程序?:

public class Hello implements EventHandler<SNSEvent>{
public void handleEvent(SNSEvent snsEvent, Context context) {
...
}
}

最佳答案

您无需为 Lambda 入口点实现接口(interface)。您的处理程序类可以只是一个具有满足要求的签名的 POJO explained in the documentation .

例如:

package example;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.events.SNSEvent;

public class Hello {
public void handleEvent(SNSEvent event, Context context) {
// Process the event
}
}

在这种情况下,您应该使用 example.Hello::handleEvent 作为处理程序配置。

另请参阅this example from the official docs :

package example;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.LambdaLogger;

public class Hello {
public String myHandler(int myCount, Context context) {
LambdaLogger logger = context.getLogger();
logger.log("received : " + myCount);
return String.valueOf(myCount);
}
}

关于java - AWS Lambda RequestHandler 用于无效输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55238826/

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