什么是 Amazon Lambda? - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

什么是 Amazon Lambda?

Amazon Lambda 是一项计算服务,可使您无需调配或管理服务器即可运行代码。

Lambda 在可用性高的计算基础设施上运行您的代码,执行计算资源的所有管理工作,其中包括服务器和操作系统维护、容量预置和弹性伸缩和记录。使用 Lambda,您只需在 Lambda 支持的一种语言运行时系统中提供代码。

您可以将代码组织到 Lambda 函数。Lambda 服务仅在需要时运行函数并自动扩展。您只需按使用的计算时间付费,代码未运行时不产生费用。有关更多信息,请参阅Amazon Lambda 定价

提示

要了解如何构建无服务器解决方案,请查看无服务器开发人员指南

何时使用 Lambda

Lambda 是一种理想的计算服务,适用于需要快速纵向扩展并在不需要时缩减至零的应用程序场景。例如,您可以在以下情况中使用 Lambda:

  • 文件处理:使用 Amazon Simple Storage Service(Amazon S3)在上传完毕后实时触发 Lambda 数据处理。

  • 流处理:使用 Lambda 和 Amazon Kinesis 处理实时流数据,用于应用程序活动跟踪、交易订单处理、点击流分析、数据清理、日志筛选、索引编制、社交媒体分析、物联网(IoT)设备数据遥测和计量。

  • Web 应用程序:将 Lambda 与其他 Amazon 服务相结合,构建功能强大的 Web 应用程序,这些应用程序可自动纵向扩展和缩减,并跨多个数据中心以高可用配置运行。

  • IoT 后端:使用 Lambda 构建无服务器后端以处理 Web、移动设备、IoT 和第三方 API 请求。

  • 移动后端:使用 Lambda 和 Amazon API Gateway 构建后端以对 API 请求进行身份验证和处理 API 请求。使用 Amazon Amplify 可轻松与 iOS、Android、Web 和 React Native 前端集成。

使用 Lambda 时,您只负责您的代码。Lambda 管理提供内存、CPU、网络和其他资源均衡的计算机群,以运行代码。由于 Lambda 管理这些资源,因此您无法在提供的运行时上登录计算实例或自定义操作系统。

Lambda 代表您执行操作和管理活动,包括管理容量、监控并记录 Lambda 函数。

如果您确实需要管理计算资源,Amazon 还提供了其他计算服务可供考虑,例如:

  • Amazon App Runner 可自动构建和部署容器化 Web 应用程序,通过加密对流量进行负载均衡,扩展以满足您的流量需求,并允许配置如何访问服务,以及与私有 Amazon VPC 中的其他 Amazon 应用程序进行通信。

  • Amazon Fargate 与 Amazon ECS 结合使用,无需预置、配置或扩展虚拟机集群即可运行容器。

  • Amazon EC2 能让您自定义操作系统、网络和安全设置以及整个软件堆栈。您将负责预置容量、监控服务器实例集的运行状况和性能,并通过部署可用区来增强容错能力。

主要特征

以下关键功能可帮助您开发可扩展、安全且易于扩展的 Lambda 应用程序:

配置函数选项

使用控制台或 Amazon CLI 配置 Lambda 函数。

环境变量

使用环境变量来调整函数的行为,而无需更新代码。

版本

使用版本管理函数部署,例如,可将新函数用于 beta 测试,而这不会影响稳定生产版本的用户。

容器映像

使用 Amazon 提供的基本映像或备用基本映像为 Lambda 函数创建容器映像,以便重复使用现有的容器工具或部署依赖大量依赖项的较大工作负载,例如机器学习。

图层

为库和其他依赖项打包,以减少部署存档的大小,并加快代码部署速度。

Lambda 扩展

通过监控、可观测性、安全性和监管工具增强 Lambda 函数。

函数 URL

向 Lambda 函数添加专用 HTTP(S)端点。

响应流式处理

配置 Lambda 函数 URL 以将响应负载从 Node.js 函数流式传输回客户端,以提高首字节时间(TTFB)性能或返回较大负载。

并发和扩展控制

对生产应用程序的扩展和响应能力进行精细控制。

代码签名

确认只有已获批准的开发人员才能发布 Lambda 函数中未经更改的可信代码

私有联网

为资源(如数据库、缓存实例或内部服务)创建专用网络。

文件系统访问

配置函数以将 Amazon Elastic File System(Amazon EFS)挂载到本地目录,以便函数代码能够在高并发下安全地访问和修改共享资源。

适用于 Java 的 Lambda SnapStart

Java 运行时系统的启动性能提高多达 10 倍,而无需支付额外费用,通常也无需更改函数代码。