【问题标题】:Unix style pipe with AWS lambdas?带有 AWS lambdas 的 Unix 风格管道?
【发布时间】:2017-03-18 12:20:55
【问题描述】:

我想编排类似于 unix 管道的 Amazon lambda 函数,但每个函数都将其原始负载(和结果)传递给下一个函数:

charge_customer | send_log | email_customer

charge_customer 通过 API 网关调用。

我曾考虑通过 SNS 实现这一目标:做一个

client_fetch('POST', 'url/to/first_func', payload_including_next_funcs)

然后将first_funcs 的结果放到 SNS 上。

但如果没有第一个 lambda 等待所有其他 lambda 完成,这似乎是不可能的。我也可以让第一个 lambda 调用所有其他的然后返回。

有没有办法实现这样的机制?或者我可以避免在单个 lambda 中包含所有代码,并且仍然通过单个 API 网关往返实现它并且没有 lambda 相互等待的另一种方式?

【问题讨论】:

  • 从您的函数名称来看,在我看来 send_logemail_customer 并不是发出请求的客户端真正关心的操作。在这种情况下,您可以简单地将 send_logemail_customer 作为“事件”从 charge_customer 函数内部调用,然后再从它返回。
  • 你可以简单地从functionA中异步调用另一个functionB
  • 谢谢两位。 @idbehold,我希望避免使用一些亚马逊内部机制使 lambda 成本增加一倍,但也许这是不可能的。
  • @hnvasa,我会检查一下,也许是一个解决方案 - 由于限制,我似乎无法将最终完成/成功/失败返回给客户。
  • 如果您只是想调用 lambda 函数而不等待响应,您可以使用“事件”调用类型。

标签: pipe aws-lambda amazon-sns aws-api-gateway


【解决方案1】:

您可以为此使用AWS Step Functions

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 2021-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多