是否通过AWS sdk异步发送事件到Event Bridge?

问题描述 投票:0回答:1

我在 Lambda 中使用以下代码将事件发送到 AWS 中的事件桥。

import { EventBridgeClient, PutEventsCommand } from '@aws-sdk/client-eventbridge';


eventBridge = new EventBridgeClient({
      requestHandler: new NodeHttpHandler({
        requestTimeout: 5000,
        connectionTimeout: 2000,
      }),
      maxAttempts: 3,
    });

  await eventBridge.send(new PutEventsCommand(...));

事件桥有许多监听此事件的目标。我的问题是

eventBridge.send
是异步还是同步请求。我发现我的 lambda 的持续时间非常长,当查看 xray 时,它向我显示了从事件桥监听此事件的所有下游 lambda。看起来
eventBridge.send
会等待所有目标完成事件处理。这是真的吗?如何在不等待目标的情况下将事件放入事件桥?

amazon-web-services aws-lambda aws-event-bridge aws-xray
1个回答
0
投票

当 EventBridge 收到事件时,PutEvents 调用将完成。向目标的交付是异步的。如果您使用 X 射线检测您的 Lambda 函数,它会将跟踪 ID 传递给 EventBridge,然后 EventBridge 将传播到将显示在您的跟踪中的目标。因此,x 射线跟踪将显示完整的异步链,该链将比启动函数的执行时间更长。

© www.soinside.com 2019 - 2024. All rights reserved.