常见 Lambda 应用程序类型和使用案例 - AWS Lambda

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

常见 Lambda 应用程序类型和使用案例

在 AWS Lambda 上构建应用程序时,Lambda 函数和触发器是核心组件。Lambda 函数是处理事件的代码和运行时,而触发器是调用该函数的AWS服务或应用程序。为了清晰起见,请考虑以下情景:

  • 文件处理 – 假设您有一个照片共享应用程序。人们使用您的应用程序上载照片,应用程序将这些用户照片存储到 Amazon S3 存储桶中。然后,您的应用程序创建每个用户照片的缩略图版本,并在用户的资料页面上显示这些缩略图。在这种情景下,您可以选择创建 Lambda 函数来自动创建缩略图。Amazon S3 是受支持的 AWS 事件源,可以发布对象创建事件并调用 Lambda 函数。您的 Lambda 函数代码可以从 S3 存储桶读取照片对象、创建缩略图版本,然后将其保存到其他 S3 存储桶中。

  • 数据和分析 – 假设您在构建分析应用程序并将原始数据存储到 DynamoDB 表中。编写、更新或删除表中的项目时,DynamoDB Streams可以将项目更新事件发布到与表关联的流。在这种情况下,事件数据提供项目键、事件名称 (例如插入、更新和删除) 以及其他相关详细信息。您可以编写 Lambda 函数,通过聚合原始数据来生成自定义指标。

  • 网站 – 假设您在创建网站并且希望在 Lambda 上托管后端逻辑。您可以使用 Amazon API Gateway 作为 HTTP 端点在 HTTP 上调用 Lambda 函数。现在,您的 Web 客户端可以调用 API,然后 API Gateway 可将请求路由到 Lambda。

  • 移动应用程序 – 假设您有生成事件的自定义移动应用程序。您可创建 Lambda 函数来处理由自定义应用程序发布的事件。例如,您可以配置 Lambda 函数来处理自定义移动应用程序中的点击。

AWS Lambda 支持将多种 AWS 服务作为事件源。有关更多信息,请参阅将 AWS Lambda 与其他服务一起使用。您配置了这些事件源触发 Lambda 函数后,Lambda 函数会在出现事件时自动调用。您可以定义事件源映射,这是您如何确定要跟踪的事件以及要调用的 Lambda 函数。

以下是事件源和 end-to-end 体验运作方式的介绍性示例。

示例 1:Amazon S3 推送事件并调用 Lambda 函数

Amazon S3 可以在存储桶上发布不同类型的事件,例如 PUT、POST、COPY 和 DELETE 对象事件。使用存储桶通知功能,您可以配置事件源映射,引导 Amazon S3 在出现特定事件类型时调用 Lambda 函数。

以下是一个典型序列:

  1. 用户在存储桶中创建对象。

  2. Amazon S3 将检测对象创建事件。

  3. Amazon S3 将会使用由执行角色提供的权限来调用 Lambda 函数。

  4. AWS Lambda 运行 Lambda 函数,指定事件作为参数。

配置 Amazon S3 将您的函数作为存储桶通知操作调用。要授予 Amazon S3 调用该函数的权限,请更新函数的基于资源的策略

示例 2:AWS Lambda 从 Kinesis 流中拉取事件并调用 Lambda 函数

对于基于轮询的事件源,AWS Lambda 会轮询源,然后在源上检测到记录后将调用 Lambda 函数。

以下示例描述了自定义应用程序如何将记录写入 Kinesis 流中:

  1. 自定义应用程序将记录写入 Kinesis 流。

  2. AWS Lambda 持续轮询流,在服务检测到流上的新记录时调用 Lambda 函数。AWS Lambda 根据您在 Lambda 中创建的事件源映射来确定要轮询的流以及调用的 Lambda 函数。

  3. 使用传入事件调用 Lambda 函数。

使用基于流的事件源时,您可以在 AWS Lambda 中创建事件源映射。Lambda 将从流中读取项目并同步调用该函数。您不必授予 Lambda 调用该函数的权限,但其需要读取流的权限。