【问题标题】:AWS EventBridge Target Java Lambda functionAWS EventBridge 目标 Java Lambda 函数
【发布时间】:2021-05-13 00:39:31
【问题描述】:

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

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

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

【问题讨论】:

    标签: java amazon-web-services aws-lambda aws-event-bridge


    【解决方案1】:

    您需要将请求处理程序从使用 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 更容易。还链接了一些示例代码,您可能会发现它们对反序列化很有帮助。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2021-09-02
        • 2021-08-21
        • 1970-01-01
        • 2021-07-15
        • 2021-03-11
        • 2021-07-12
        • 2021-03-30
        • 2017-11-05
        • 2021-04-18
        相关资源
        最近更新 更多