什么是 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 函数。
主要特征
以下关键功能可帮助您开发可扩展、安全且易于扩展的 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 倍,而无需支付额外费用,通常也无需更改函数代码。