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

Lambda 在可用性高的计算基础设施上运行您的代码,执行计算资源的所有管理工作,其中包括服务器和操作系统维护、容量预配置和自动扩展、代码和安全补丁部署以及代码监控和记录。您只需要提供代码。


PAC-Q4_House-Ads_Lambda_2up

介绍 AWS Lambda 的函数

您在 AWS Lambda 上运行的代码被称为“Lambda 函数”。 当您创建 Lambda 函数之后,只要一触发该函数,它就能始终立即运行起来,这与电子表格中的公式类似。每个函数中都包含您的代码以及一些相关的配置信息,包括函数名称和资源要求。Lambda 函数是“无状态的”,与底层基础设施没有密切关系,从而使 Lambda 能在需要时尽可能多地快速启动函数副本,以扩展到传入事件的速率。

当您将代码上传到 AWS Lambda 之后,您可以将您的函数与特定的 AWS 资源(例如特定的 Amazon S3 存储桶、Amazon DynamoDB 表、Amazon Kinesis 流或 Amazon SNS 通知)关联起来。然后,当资源发生改变时,Lambda 将视需要执行您的函数并管理计算资源,从而与传入请求保持联系。

构建自定义后端服务

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

自备代码

使用 AWS Lambda,不需要了解任何新语言、工具或框架。您可以使用任何第三方库,甚至是本机库。AWS Lambda 支持 Java、Node.js、C# 和 Python 代码,并支持未来将采用的其他语言。

内置容错能力

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

自动扩展

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

按使用费用

使用 AWS Lambda,您只需为提供的请求以及运行您的代码所需的计算时间付费。账单以 100 毫秒的增量计费,从而能经济高效且轻松地从每天几个请求自动扩展到每秒数千个请求。

灵活的资源模型

您选择您想分配到您的函数中的内存数量,然后 AWS Lambda 按比例分配 CPU 功率、网络带宽和磁盘 I/O。