amazon-web-services - AWS Lambda 是否适合实时 API Rest?

标签 amazon-web-services aws-lambda serverless

我正在学习 AWS Lambda,但我担心同步的实时请求。
lambda 有一个“冷启动”的事实,它听起来不太适合处理 GET 请愿。

想象一下,用户正在使用该应用程序并执行 GET HTTP 请求以获取产品或产品列表,如果 lambda 处于 sleep 状态,则需要 10 秒才能响应,我不认为这是可接受的响应时间。
将 AWS Lambda 用于经典(同步响应)API Rest 是好是坏?

最佳答案

像大多数事情一样,我认为你应该先衡量再决定。许多 AWS 客户使用 Lambda 作为其 web 应用程序的后端非常成功。

有很多关于 Lambda 延迟的讨论,例如:

  • 2017-04 comparing Lambda performance using Node.js, Java, C# or Python
  • 2018-03 Lambda call latency
  • 2019-09 improved VPC networking for AWS Lambda
  • 2019-10 you're thinking about cold starts all wrong

  • 您应该测量代表您的应用及其使用的环境的延迟。

    与请求延迟相关的一些重要因素:
  • 冷启动 => 更高的延迟
  • 请求模式是冷启动的重要因素
  • 如果您需要在 VPC 中部署(附加 ENI => 更高的冷启动延迟)
  • 使用 CloudFront --> API 网关 --> Lambda(更多层 => 更高延迟)
  • 编程语言的选择(Java 可能冷启动延迟最高,Go 最低)
  • Lambda 环境的大小(更多 RAM => 更多 CPU => 更快)
  • Lambda帐户和并发限制
  • 预热策略
  • 关于amazon-web-services - AWS Lambda 是否适合实时 API Rest?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52059561/

    相关文章:

    node.js - AWS Lambda(Node.js,8.10 版)和 Mongoose : MongoNetworkError connection to DB timed out

    amazon-web-services - 在本地运行AWS SAM CLI时启用CORS

    aws-lambda - 无服务器框架 Lambda AppSync 错误

    ssl - HTTPS 不工作(在基于 AWS Elastic Beanstalk 的站点上)

    amazon-web-services - 带有 AWS WAF 的 AWS API 网关

    aws-lambda - 如何在 localstack 上运行 AWS Lambda dotnet

    amazon-web-services - 有没有办法将普通的AWS Lambda函数容器化?

    node.js - Azure DevOp - 指定已弃用的运行时 (nodejs12.x)

    amazon-web-services - 使用 ansible 启动 aws ec2 实例的最佳方式

    npm - 在 AWS Lambda 中运行 npm