AWS EventBridge 目标 Java Lambda 函数

问题描述

我正在使用 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>。这也会导致您的类/功能发生额外变化。

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

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