【问题标题】:AWS Lambda (in python) waiting for asynchronous eventAWS Lambda(在 python 中)等待异步事件
【发布时间】:2019-06-01 05:58:07
【问题描述】:

我有一个 AWS Lambda,用 python 编写,位于 API Gateway 后面,它向第三方发出网络请求。

在该请求之后不久,第三方将向我选择的 URL 发出单独的请求 - 我需要获取该请求的正文并在我的 Lambda 的响应中返回它。

如果我让第三方发送到第二个 Lambda,我如何让第一个 Lambda 保持打开状态,等待来自第二个 Lambda 的事件?

【问题讨论】:

  • 另一种选择可能是立即向客户端返回一个相关器并公开第二个 API 路由,客户端稍后可以使用该相关器调用第二个 API 路由以请求第一个操作的结果。
  • 我(非常)更喜欢不涉及轮询的东西,但这会起作用。
  • 我也有同样的问题,实际上我正在查看“aws step functions”

标签: python amazon-web-services asynchronous aws-lambda


【解决方案1】:

(希望有人提供更好的想法...)

我目前打算做的是建立一个 redis (Elasticache) 集群。 Lambda A 将发送一个带有 X-Request-ID 的请求,然后设置一个 redis pubsub().subscribe(X-Request-ID)。 Lambda B 将收到响应并执行 redis pubsub().publish(X-Request-ID, response)。然后 Lambda A 将返回响应,如果没有及时收到,则超时。

不优雅,但我认为它有效。

【讨论】:

    猜你喜欢
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多