1. 简介
Amazon Lambda 是一项无服务器计算服务,可运行代码来响应事件,并自动管理底层计算资源。Amazon Lambda 可以自动运行代码以响应多个事件,例如 Amazon S3 存储桶中对象的修改或 Amazon DynamoDB 中的表更新。
Amazon Lambda是一个相对轻量化的计算服务。如果轻重程度按函数、容器服务、虚拟机来“简单划分”的话,其功能级别对应函数,由事件驱动和API调用触发。这个事件可以是Amazon S3上传文件、Amazon SNS有消息接入等。
2. 特点
在 Amazon Lambda 上运行的代码称为“Lambda 函数”。创建 Lambda 函数之后,它就始终处于一被触发就立即运行的状态,与电子表格中的公式类似。每个函数中都包含代码以及一些相关的配置信息,包括函数名称和资源要求。
Lambda 函数是“无状态”的,与底层基础设施没有密切关系。因此,在编写“Lambda 函数”时,既不能依赖底层基础设施或操作系统的资源或命令,又不能允许存在任何形式的缓存。
将代码上传到 Amazon Lambda 之后,就可以将函数与特定的AWS资源(例如:Amazon S3 存储桶、Amazon DynamoDB 表、Amazon Kinesis 流或 Amazon SNS 通知)关联起来。然后,当资源发生改变时,Lambda 将根据需要运行函数并管理计算资源,满足传入请求的需要。
3. 优势
【不再管理服务器】Amazon Lambda 可以自动运行代码,无需预置或管理服务器,只需编写代码并将其上传至 Lambda。也就是说,无需采购虚拟机、安装操作系统和部署基础环境,使用起来更方便,仅需关注代码本身。
【自动扩展】Amazon Lambda 通过运行代码以响应每个触发程序,从而实现自动扩展应用程序。代码将并行运行并独立处理每个触发程序,使其按照工作负载的大小精密扩展。类似Kubernetes的效果,自动扩张与收缩。
【不运行不收费】使用 Amazon Lambda 时,会按代码执行时间(以每 1 毫秒为单位)和代码触发次数收费。代码未运行时,无需支付任何费用。运行几次,收几次的费用。
4. 应用场景
【场景1:实时文件处理】可以使用 Amazon S3 触发 Amazon Lambda,以便在上传数据后立即进行处理。例如,可以使用 Lambda 实时创建图像缩略图、转换视频代码、建立文件索引、处理日志、验证内容以及聚合和筛选数据。
【场景2:移动互联网后端服务】可以使用 Amazon Lambda 和 Amazon API Gateway 构建后端来验证和处理 API 请求。
【场景3:Web应用程序】通过将 Amazon Lambda 与其他AWS服务相结合,开发人员可以构建功能强大的 Web 应用程序,从而可自动扩展和收缩,并跨多个数据中心在高可用配置中运行,而无需在可扩展性、备份或多数据中心冗余方面执行任何管理工作。
参考链接:Amazon Lambda 云计算介绍