【问题标题】:Are API a proper use case of serverless functions?API 是无服务器功能的正确用例吗?
【发布时间】:2019-07-22 16:28:44
【问题描述】:
假设我们的服务公开了一个具有 5 个端点的 API。无服务器架构是拆分此服务的好方法吗?我知道我们在内存、运行时间和冷启动方面存在限制,让我们假设这些可以得到缓解。
如果答案是肯定的......每个端点逻辑是否应该转到单独的 lambda 函数?随着 API 的增长,我担心这可能有点矫枉过正。我想听听你的经验
【问题讨论】:
标签:
architecture
aws-lambda
serverless-architecture
【解决方案1】:
无服务器架构是拆分此服务的好方法吗?
您的问题的答案可能很烦人,这取决于。我们正在将 AWS Lambda 与 API 网关一起用于我们的一些 API,体验参差不齐。我们面临的最大问题是内存限制和冷启动。
由于上述原因,我们尝试将 lambda 用于 API 的使用限制在以下用例中。
- 延迟不是很严重的内部 API。
- 不经常调用的 API,因此您不需要服务器
一直在运行。
- 执行从几个来源获取数据的简单任务的 API
并在此基础上进行一些调整。
我不会将无服务器 lambda 架构用于我的主要生产负载,但有些人能够使用它,因此它可能取决于您所服务的用例。
每个端点逻辑是否应该转到单独的 lambda 函数?
同样,这取决于。如果您的 API 服务于相同的数据源,但不同的端点只是不同类型的数据过滤器,我将尝试使用相同的 Lambda 和多个 API 网关。
但请注意不要在同一个 lambda 中处理太多 API 网关,因为您很容易得到非常复杂的 lambda 代码。
关于同样的问题有一个很好的答案。 aws api gateway & lambda: multiple endpoint/functions vs single endpoint