【问题标题】:AWS lambda VS AWS CLIAWS lambda 与 AWS CLI
【发布时间】:2019-03-04 19:04:53
【问题描述】:

我想知道这两种技术中哪个是更好的选择:

  • 使用 AWS CLI 在 EC2 实例中编写函数
  • 使用 AWS Lambda 编写函数

我更喜欢在 AWS Lambda 中编写代码,但我想知道使用 Lambda 是否有任何特定优势。

P.S:我必须执行的那些功能几乎相同(它们使用相同的算法),因此功能上没有区别。

问候

【问题讨论】:

  • AWS Lambda 用于定义函数(您可以对其进行测试、分配权限、导入 npm 包、管理内存等)AWS CLI 可用于管理 lambda 函数列表、调用 lambda功能,但是不能用AWS-CLI写复杂的服务端代码,看一下:docs.aws.amazon.com/lambda/latest/dg/with-userapp.html

标签: aws-lambda aws-cli


【解决方案1】:

我了解您想知道使用 AWS Lambda 而非使用 EC2 实例是否有任何特殊优势。

以下是 AWS Lambda 的一些优势:

  • 降低成本。与 AWS EC2 不同,Lambda 遵循按需付费定价模式,前一百万次调用属于免费套餐类别 [1]。根据您的使用案例,您可能能够在生产环境中使用 AWS Lambda 节省大量成本。

  • 没有系统管理负载。 AWS Lambda 遵循无服务器计算范式,无需启动服务器、根据需要配置和维护它们。

  • AWS Lambda 函数可以非常方便地执行自动化任务,并且可以由许多服务触发 [2]。例如:如果您将文件上传到 AWS S3 存储桶,您可以选择触发 Lambda 函数来压缩文件并将其存储在另一个 S3 存储桶中。

然而,与 EC2/ECS 相比,Lambda 也有一些缺点:

  • Lambda 函数容易出现冷启动问题。很长一段时间未调用 Lambda 函数时,通常会出现冷启动问题。 AWS 为后端的 Lambda 函数部署了一个新容器,有时可能会出现延迟调用[3]。

  • 在 Amazon CloudWatch 中调试 AWS Lambda 函数日志和指标可能会很困难。

  • Lambda 函数支持的最大执行时间为 15 分钟,并且有时间段限制。因此,可能无法将 Lambda 函数用于耗时的操作(例如:处理大型平面文件)。

Amazon EC2 有一个系统管理负载,它的成本可能会更高一些,但不存在 Lambda 冷启动问题,它甚至可以用于长时间运行的任务。 因此,您可以根据您的具体用例选择使用 EC2 或 Lambda。

我希望这个答案对您有所帮助。

参考文献

[1]。 https://aws.amazon.com/lambda/pricing/

[2]。 https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html

[3]。 https://docs.aws.amazon.com/lambda/latest/dg/running-lambda-code.html

【讨论】:

    【解决方案2】:

    AWS Lambda 作为无状态服务运行,这意味着我们不能在函数内存储文件。我们使用 60 个 lambda 函数构建了整个应用程序。在 60 个中,有 54 个 lambda 函数由 API 网关触发,剩余的用作服务模块(意味着由另一个 lambda 函数调用)。

    如果你使用 lambda 函数作为微服务,你可以在性能和价格方面获得更多收益。

    我的建议:不要创建单个 lambda 函数来运行整个系统。使用微服务方法。

    【讨论】:

      猜你喜欢
      • 2016-02-04
      • 2019-10-31
      • 2018-09-22
      • 2021-12-17
      • 2015-11-19
      • 2021-04-23
      • 2020-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多