AWS Lambda 功能

为什么选择 AWS Lambda?

AWS Lambda 是一项无服务器计算服务,可运行代码来响应事件并为您自动管理底层计算资源。这些事件可能包括状态更改或更新,例如用户将商品放入电子商务网站的购物车中。您可以使用 AWS Lambda 通过自定义逻辑来扩展其他 AWS 服务,或创建您自己的按 AWS 规模、性能和安全性运行的后端服务。AWS Lambda 可以自动运行代码来响应多个事件,例如,通过 Amazon API Gateway 发送的 HTTP 请求、Amazon Simple Storage Service(Amazon S3)存储桶中的对象修改、Amazon DynamoDB 中的表更新以及 AWS Step Functions 中的状态转换。

Lambda 在高可用性计算基础设施上运行代码,用于执行计算资源的所有管理工作。这包括服务器和操作系统维护、容量调配和弹性伸缩、代码和安全补丁部署以及代码监控和日志记录。您只需要提供代码。

Page Topics

关键产品功能

关键产品功能

AWS Lambda 可使您将自定义逻辑添加到 Amazon S3 存储桶和 Amazon DynamoDB 表之类的 AWS 资源中,从而在数据进入云中或通过云迁移时轻松将计算应用于数据。

AWS Lambda 的入门很简单。首先,您可以通过上传您的代码(或在 Lambda 控制台中适当构建代码)并选择内存、超时时间和 AWS Identity and Access Management(IAM)角色来创建函数。然后,您可以指定 AWS 资源来触发该函数,资源可以是特定的 Amazon S3 桶、Amazon DynamoDB 表或 Amazon Kinesis 流。当资源发生改变时,Lambda 将视需要执行您的函数并启动和管理计算资源,以便与传入请求保持联系。

您可以使用 AWS Lambda 来创建新的后端应用程序服务,这些应用程序使用通过 Amazon API Gateway 构建的 Lambda 应用程序编程接口(API)或自定义 API 端点按需触发。由于使用 Lambda 处理自定义事件而不是在客户端上对其提供服务,您可以避免客户端平台变化、减少电池耗尽情况并启用更简单的更新。

使用 AWS Lambda,不需要了解任何新语言、工具或框架。您可以使用任何第三方库,甚至是本机库。您还可以将任何代码(框架、软件开发工具包、库等)打包为 Lambda Layer,并在多个函数之间轻松进行管理和共享。Lambda 原生支持 Java、Go、PowerShell、Node.js、C#、Python 和 Ruby 代码,并提供 Runtime API,允许您使用任何其他编程语言来编写函数。

AWS Lambda 管理所有的基础设施,以将您的代码放在可用性高的容错型基础设施上运行,从而使您能够专注于构建有差别后端服务。使用 Lambda,您不必在补丁发布时更新底层操作系统 (OS),或随着使用量的增加而为调整大小或添加新服务器担心。AWS Lambda 无缝部署您的代码、执行所有的管理、维护和安全补丁操作,并通过 Amazon CloudWatch 提供内置记录和监控。

AWS Lambda 可在各 AWS 区域中跨过多个可用区 (AZ) 维护计算容量,从而帮助保护您的代码使其免受单个机器或数据中心实施的故障。AWS Lambda 及该服务上运行的函数都提供可预测且可靠的运行性能。AWS Lambda 旨在为服务本身及其运行的函数提供高可用性。没有维护时段或计划停机时间。

AWS Lambda 支持将函数打包和部署为容器映像,从而使客户可以通过使用熟悉的容器映像工具、工作流程和依赖关系轻松构建基于 Lambda 的应用程序。客户还可从以 AWS Lambda 的以下优势中获益:操作简便、具有亚秒级启动时间的弹性伸缩、高可用性、按使用量付费的计费模型以及与 200 多个 AWS 服务和软件即服务 (SaaS) 应用程序的本机集成。企业客户可以在 Lambda 和容器化应用程序中使用一套一致的工具来简化集中管控需求,例如安全扫描和图像签名。

AWS Lambda 只在需要时调用您的代码,并能自动扩展以支持传入请求的速率,无需任何手动配置操作。您的代码可处理的请求数量无限制。AWS Lambda 通常在事件发生后的几毫秒内开始运行您的代码。由于 Lambda 会自动扩展,因此随着事件频率的增加,性能会始终保持在一致的高水平。由于您的代码是无状态的,Lambda 可以在需要时尽可能多地启动实例,而不会发生冗长的部署和配置延迟。

使用 Amazon RDS 代理可充分利用关系数据库的完全托管式连接池。RDS 代理可高效地管理与关系数据库的数千个并发连接,使用户能够轻松构建需要与关系数据库进行交互的高度可扩展、安全、基于 Lambda 的无服务器应用程序。当前,RDS 代理提供对 MySQL 和 Aurora 的支持。您可以通过 Amazon RDS 控制台或 AWS Lambda 控制台将 RDS 代理用于无服务器应用程序。

预置并发使您能够更好地控制无服务器应用程序的性能。启用后,预置并发将使函数保持初始化状态,并准备好在两位数毫秒内进行响应。预置并发非常适合需要更好地控制函数启动时间的任何 AWS Lambda 应用程序。轻松配置和调整您的应用程序所需的并发性。根据需要放大、缩小或完全关闭它。利用预置并发为延迟敏感的应用程序带来一致的性能,而无需更改代码或管理计算资源。

有了适用于 AWS Lambda 的 Amazon Elastic File System (EFS),您就可以在任意规模且低延迟的情况下安全地读取、写入和持久存储大量数据。您无需编写代码即可将数据下载到临时存储中进行处理。这样可以节省时间并简化代码,以便您专注于业务逻辑。适用于 Lambda 的 EFS 非常适合一系列用例,包括处理或备份大量数据以及加载大型参考文件或模型。您还可以在无服务器实例或基于容器的应用程序之间共享文件,甚至可以使用适用于 AWS Lambda 的 EFS 运行机器学习 (ML) 推理。

借助 Lambda@Edge,AWS Lambda 可以在全球的 AWS 站点运行您的代码来响应 Amazon CloudFront 事件,例如发往或来自原始服务器和查看器的内容请求。这样更易于以更低延迟为您的终端用户分发更加丰富、更加个性化的内容。 

构建 AWS Step Functions 工作流以便为复杂或长时间运行的任务协调多个 AWS Lambda 函数。通过 Step Functions,您可以定义使用顺序、并行、分支和错误处理步骤来触发 Lambda 函数集合的工作流。借助 Step Functions 和 Lambda,您可以为应用程序和后端构建有状态、长时间运行的进程。

AWS Lambda 的内置软件开发工具包(SDK)与 AWS Identity and Access Management(IAM)集成,以确保安全访问其他 AWS 服务的代码。默认情况下,AWS Lambda 在 Amazon Virtual Private Cloud (VPC) 中运行您的代码。或者,您可以在自己的 VPC 后面配置 AWS Lambda 资源访问,以利用自定义安全组和网络访问控制列表。这提供了对 VPC 内资源的安全 Lambda 函数访问。 AWS Lambda 符合 SOCHIPAAPCIISO 的要求。有关 Lambda 认证和合规性就绪性的最新信息,请参阅范围内的全部服务

AWS Lambda 的代码签名使您可以验证只有经批准的开发人员发布的未经修改的代码才会部署在您的 Lambda 函数中。您只需创建经过数字签名的代码构件,然后配置 Lambda 函数即可在部署时验证签名。即使在大型团队中,这也有助于提高应用程序开发速度和敏捷性,同时强制执行高安全性标准。

对于 AWS Lambda,您需要按执行持续时间(而不是服务器单元)付费。使用 Lambda 函数时,您只需为提供的请求以及运行您的代码所需的计算时间付费。计费以一毫秒为增量进行计量,从而实现从每天几个请求到每秒数千个请求的简单且经济高效的弹性伸缩。对于预置并发,您需要为配置的并发量以及配置的持续时间付费。启用预置并发并执行函数时,您还需要为请求和执行持续时间付费。要了解有关定价的更多信息,请访问 AWS Lambda 定价

选择您想分配到函数中的内存数量,然后 AWS Lambda 按比例分配 CPU 算力、网络带宽和磁盘输入/输出 (I/O)。

AWS Lambda 扩展程序支持与您最喜欢的监控、可观察性、安全性和治理工具轻松集成。Lambda 在执行环境中调用您的函数,该环境提供了一个安全且隔离的运行时,您的函数代码将在其中执行。Lambda 扩展程序与您的函数代码一起在 Lambda 的执行环境中运行。Lambda 扩展程序可以使用 AWS Lambda Telemetry API 直接从 Lambda 捕获细粒度的诊断信息(例如日志、指标和跟踪),并将它们发送到您选择的目的地。您还可以使用扩展程序将您首选的安全代理与 Lambda 集成,而且这样做并不会产生运营开销,对函数性能的影响最小。

在 Graviton2 上运行的 AWS Lambda 函数,使用由 AWS 设计、基于 Arm 的处理器架构,与在 x86 处理器上运行的函数相比,性价比提升最高可达 34%。这可用于多种不同的无服务器工作负载,例如 Web 和移动后端、数据,以及媒体处理。Graviton2 函数拥有更低的延迟、性价比提升高达 19%、成本可降低 20%,且拥有 AWS 中当前最高的能效,能够用于任务关键型无服务器应用程序。

AWS Lambda 会自动捕获日志、指标和轨迹并将它们发送给 Amazon CloudWatch 和 AWS X-Ray 等 AWS 监控和可观测性服务,以提供内置的监控功能。Lambda 还提供高级监控功能,例如 Live Tail,它使您能够实时查看和分析日志;高级日志记录控制,它使您能够以 JSON 结构化格式在本地捕获日志;无需更改代码即可控制日志级别筛选;以及自定义 Lambda 要将日志发送到的 CloudWatch 日志组。借助 Application Signals,Lambda 提供了开箱即用的应用程序性能监控(APM)工具,用来跟踪无服务器应用程序中的吞吐量、可用性、延迟、故障和错误。Lambda Insights 会自动捕获包括内存、CPU 和网络使用率在内的详细指标,从而更深入地了解 Lambda 函数的性能。此外,Lambda 还支持通过 Lambda 扩展第三方监控工具无缝集成,以便轻松使用您的首选工具对无服务器应用程序进行监控和故障排查。