具有事件调用类型的AWS lambda java

具有事件调用类型的AWS lambda java,java,aws-lambda,Java,Aws Lambda,我想编写一个AWS Lambda,它使用事件调用类型。根据我的观点,我应该做以下几点: 如果计划异步调用Lambda函数(使用 事件调用类型),输出类型应为空。例如,如果 您可以将AWS Lambda与Amazon S3、Kinesis和 在Amazon SNS中,这些事件源使用 事件调用类型 我正在寻找一个关于如何编写这样一个处理程序(Java)方法的示例 对于使用RequestResponse调用类型(例如,publicstringmyhandler(int-myCount,Context-

我想编写一个AWS Lambda,它使用
事件
调用类型。根据我的观点,我应该做以下几点:

如果计划异步调用Lambda函数(使用 事件调用类型),输出类型应为空。例如,如果 您可以将AWS Lambda与Amazon S3、Kinesis和 在Amazon SNS中,这些事件源使用 事件调用类型

我正在寻找一个关于如何编写这样一个处理程序(Java)方法的示例


对于使用
RequestResponse
调用类型(例如,
publicstringmyhandler(int-myCount,Context-Context)
)的Java处理程序,有很多例子。还有一些示例(IIUC也仅用于
RequestResponse
invocation type)。我找不到处理程序正在处理
事件的Java Lambda的任何示例

public class MyFunction implements RequestHandler<eventType, Void> {

    public Void handleRequest(eventType event, Context context) {

        ...
        return null;
    }

}
公共类MyFunction实现RequestHandler{
公共Void handleRequest(事件类型事件、上下文){
...
返回null;
}
}

诀窍在于知道您的事件类型是什么类。您可以将eventType设置为Object,使函数触发一次,并让它打印函数中的类名,以确定事件类型。它将如下所示:

public class MyFunction implements RequestHandler<eventType, Void> {

    public Void handleRequest(eventType event, Context context) {

        ...
        return null;
    }

}
公共类MyFunction实现RequestHandler{
公共Void handleRequest(事件类型事件、上下文){
...
返回null;
}
}

诀窍在于知道您的事件类型是什么类。您可以将eventType设置为Object,使函数触发一次,并让它打印函数中的类名,以确定事件类型。

谢谢,我想使用API网关事件,因此IIUC它将是APIGatewayProxyRequestEvent对象(请参阅)。您知道什么是用于发送回APIGatewayProxyResponseEvent类型(异步)响应的API吗?如果API Gateway正在调用Lambda函数,那么我认为您将得到
Map
而不是事件类型,并且您的函数将不会
无效。不确定“异步响应”是什么意思。顺便说一句,所有这些在NodeJS或Python中都要简单一百万倍,而且这些语言在Lambda上的性能也比Java好。@MarkB“这些语言在Lambda上的性能也比Java好。“你怎么会这么认为呢?@cy3er Java在Lambda上有冷启动问题。”。Java Lambda函数在新的Lambda容器中部署和启动所需的时间比NodeJS或Python函数要长得多。谢谢,我想使用API网关事件,因此IIUC它将是一个APIGatewayProxyRequestEvent对象(请参阅)。您知道什么是用于发送回APIGatewayProxyResponseEvent类型(异步)响应的API吗?如果API Gateway正在调用Lambda函数,那么我认为您将得到
Map
而不是事件类型,并且您的函数将不会
无效。不确定“异步响应”是什么意思。顺便说一句,所有这些在NodeJS或Python中都要简单一百万倍,而且这些语言在Lambda上的性能也比Java好。@MarkB“这些语言在Lambda上的性能也比Java好。“你怎么会这么认为呢?@cy3er Java在Lambda上有冷启动问题。”。在新的Lambda容器中部署和启动javalambda函数比部署NodeJS或Python函数需要更长的时间。