AWS Lambda函数是否可以接收通用事件,然后确定它是哪种类型的事件



我目前正在学习AWS Lambda以及如何从其他服务触发它。我已经设法使用SNS主题(在本教程的帮助下(发布了一个json,比如:

{
"name":"Bojack",
"lastName":"Horseman",
"job":"Horsin around"
}

并触发Lambda功能:

public class LambdaHandler implements RequestHandler<SNSEvent, MyResponse> {
public MyResponse handleRequest(SNSEvent request, Context context){
String input = request.getRecords().get(0).getSNS().getMessage();
MyRequest myRequest = new Gson().fromJson(input, MyRequest.class);
context.getLogger().log(MyRequest.toString());
// do some logic
return null;
}
} 

它工作得很好!

然而,现在我正试图弄清楚如何添加一个也可以触发该功能的新服务。例如SQS或驱动蛋白。AFAIK这些服务向lambda函数发送不同的json输入,我不确定如何接收它,因为我目前正在使用SNSEvent

是否有一种方法可以接收泛型事件,并在处理程序内部确定发送该事件的服务?这样,我就可以将其解析为特定事件,并获得消息

我读过有关AWS Lambda事件源映射的文章,但我不确定是否应该这样做。我也不太理解

AWS在aws-lambda-java-events库中发布许多事件,其中包括APIGatewayV2HTTPEvent等通用事件。这些事件本质上为您提供了处理事件JSON的通用bean。点击此处查看项目:https://github.com/aws/aws-lambda-java-libs/tree/main/aws-lambda-java-events

相关内容

最新更新