【发布时间】:2018-02-27 17:07:52
【问题描述】:
我正在为我的问题寻找解决方案,也许有人可以给我一些想法。
我有一个API Gateway 插入aws lambda A。
我必须处理这样的情况:
- Lambda A 应该调用 lambda B,如果有任何结果,则返回 API Gateway。
- Lambda A 应该调用 lambda B,如果没有结果,它将调用 lambda C,然后将任何结果返回给
APi Gateway。
所以,我的问题是如何链接这些 lambda,因为我不想拥有一个巨大的 lambda。
起初,我考虑使用Step Functions,只是它在异步模式下工作,所以对我的情况没有好处。我知道我可以做一个 lambda 来调用 step 函数并等待结果,但我不喜欢这种解决方案。
有什么好的解决方案的想法吗?
谢谢。
C.C.
【问题讨论】:
-
您是否考虑过在 2 个 lambda 函数之间使用 SNS?如果后续的 lambda 函数很小,为什么不直接使用
lambda_client.invoke(FunctionName="")调用它们呢? -
使用同步调用直接从父级调用子 Lambda 函数。请注意父级的超时,因为它必须足够大以容纳子 Lambda 容器的启动及其处理。
-
其实我不是很喜欢这个解决方案,因为我将有 2 个紧密耦合的 lambda,并且我会为等待的第一个 lambda 支付执行费用。
-
Lambda 成本很低,但同意这不是一个理想的解决方案。也许重新考虑将代码合并到单个 Lambda 中。
-
每个 Lambda 做什么?如果整个工作流程完成得非常快,我看不出您为什么要将整个逻辑拆分为几个 Lambda。
标签: amazon-web-services lambda aws-api-gateway aws-step-functions