首页 > 解决方案 > AWS EventBridge 目标 Java Lambda 函数

问题描述

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

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

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

标签: javaamazon-web-servicesaws-lambdaaws-event-bridge

解决方案


您需要将您的请求处理程序从 using 更改RequestHandler<SQSEvent, String>为 using RequestHandler<Map<String,String>, String>。这也将导致您的类/功能发生额外的变化。

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

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


推荐阅读