【问题标题】:Is it possible for multiple AWS Lambdas to service a single HTTP request?多个 AWS Lambda 是否可以为单个 HTTP 请求提供服务?
【发布时间】:2020-11-03 19:03:25
【问题描述】:

在 AWS 上,是否可以让一个 HTTP 请求执行一个 Lambda,进而触发一系列串联运行的 Lambda,最终的 Lambda 将结果返回给用户?

我知道实现此目的的一种方法是让初始 Lambda “保持运行”并编排其他 Lambda,但我会为编排 Lambda 付费以在大多数情况下有效地什么都不做,即为时间付费它正在等待其他人。如果它是非 lambda 代码,那就像阻塞(并支付)整个线程,而其他线程执行它们的工作。

除非 AWS 在异步 Lambda “休眠”/等待网络 IO 时停止计费时钟?

【问题讨论】:

  • AWS Step Functions ?

标签: node.js amazon-web-services aws-lambda


【解决方案1】:

不幸的是,您发现只能调用一个 Lambda 函数,这变成了一个协调器。

这并不理想,但如果您想在处理 HTTP 请求时使用多个 Lambda 函数,则必须是这种情况,您可以使用 Lambda 调用多个 Lambda,或者创建一个 Step Function它可以协调各个步骤。您仍然需要 Lambda 来启动它,然后在返回结果之前轮询它的状态。

【讨论】:

  • 我明白了,很有趣,谢谢!我想一个节省的好处是我可以在编排器上使用最低的 RAM 设置——128MB。我想它需要在整个过程中保持一个堆,所以虽然我没有在 CPU 周期上得到我的钱,但我仍然在为我需要的东西买单,我猜 :D
  • 是的,这至少可以降低成本:)
  • 您可以直接从 API Gateway 调用 step 函数...减少 1 个 lambda
  • 但是,您不会收到回复,因为它只是return the execution ID。 :(。
猜你喜欢
  • 2015-06-22
  • 1970-01-01
  • 2021-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多