繁体   English   中英

AWS Lambda 链接最佳实践

[英]AWS Lambda chaining best practice

我正在为我的问题寻找解决方案,也许有人可以给我一些想法。 我有一个插入到aws lambda A 的API Gateway 。我必须处理这样的情况:

  1. Lambda A 应该调用 lambda B,如果有任何结果,则返回 API Gateway。
  2. Lambda A 应该调用 lambda B,如果没有结果,它将调用 lambda C,然后将结果返回给APi Gateway

所以,我的问题是如何链接这些 lambda,因为我不想拥有一个巨大的 lambda。 起初,我考虑使用Step Functions ,但它在异步模式下工作,所以对我的情况没有好处。 我知道我可以做一个 lambda 来调用 step 函数并等待结果,但我不喜欢这个解决方案。

有什么好的解决方案的想法吗?

谢谢。

抄送

您可以使用带有“异步等待”的调用 lambda,这是文档:

https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Lambda.html#invoke-property

对于异步调用: https ://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Lambda.html#invokeAsync-property

您可以使用AWS Step Function管理 AWS lambda 函数之间的协调。

真的 B & C 是 A 调用的 api

使用 IAM auth 将 lambda B & C 放在另一个 api 网关后面。 授予 A 通过您的 IAM 角色调用该 API 的权利。

  • 现在,您的外部客户通过任何身份验证方案调用 A。
  • A 可以通过 api 调用 B 或 C(可能是 url 作为参数)
  • A 可以将结果返回给调用者

对于更精细的方法,您可以将 B/C 作为它们自己的 api 网关,这意味着您已经将它们完全解耦

MiniEdit:对于这样的事情,我现在也考虑使用 Lambda 函数 URL: https ://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM