AWS EventBridge 目标 Java Lambda 函数

AWS EventBridge Target Java Lambda function

我正在使用 Java lambda 函数将自定义事件放入 AWS EventBridge。这个 eventbridge 的目标是另一个 Java lambda 函数。如何在目标 lambda 函数中接收事件?我的意思是我必须使用的 handleRequest 方法中的输入类型是什么?尝试使用 ScheduledEvent 作为输入类型,但没有成功。搜索了许多 EventBridge API 文档,但没有得到有关如何从 Eventbridge Java lambda 函数中接收数据的详细信息。

下面是接收SQS事件的例子。同样,我应该为从 EventBridge 触发的事件使用什么类型?

@Override
  public String handleRequest(SQSEvent event, Context context)

我能够以 Map 的形式访问事件。地图中的“详细信息”键给出了放置在 Eventbridge 中的实际值。

您需要将请求处理程序从使用 RequestHandler<SQSEvent, String> 更改为使用 RequestHandler<Map<String,String>, String>。这也会导致您的 class / 功能发生其他变化。

EventBridge 事件(日程表或您的事件)将在输入中显示为 json 编码字符串。

就个人而言,我发现利用 https://docs.aws.amazon.com/lambda/latest/dg/java-handler.html#java-handler-interfaces 中定义的 RequestStreamHandler 更容易。还有一些示例代码链接,您可能会发现它们对反序列化有帮助。