具有事件调用类型的AWS lambda java
我想编写一个AWS Lambda,它使用具有事件调用类型的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-
事件
调用类型。根据我的观点,我应该做以下几点:
如果计划异步调用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函数需要更长的时间。