AWS Lambda
开发人员指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

配合使用 AWS Lambda 和 Amazon S3

Amazon S3 可将事件(例如,在存储桶中创建对象时)发布到 AWS Lambda 并通过将事件数据作为参数传递来调用您的 Lambda 函数。利用这种集成,您可以编写处理 Amazon S3 事件的 Lambda 函数。在 Amazon S3 中,您可添加存储桶通知配置,该配置可标识您希望 Amazon S3 发布的事件类型和您希望调用的 Lambda 函数。

请注意有关 Amazon S3 和 AWS Lambda 集成的工作原理的以下信息:

  • 非基于流(异步)的模型 - 这是一个模型(请参阅事件源映射),其中 Amazon S3 监控存储桶并通过将事件数据作为参数传递来调用 Lambda 函数。在推模型中,您将使用存储桶通知配置保留 Amazon S3 中的事件源映射。在此配置中,您应指定您希望 Amazon S3 监控的事件类型和您希望 Amazon S3 调用的 AWS Lambda 函数。有关更多信息,请参阅 Amazon Simple Storage Service 开发人员指南 中的配置 Amazon S3 事件通知

  • 异步调用 - AWS Lambda 使用 Event 调用类型(异步调用)来调用 Lambda 函数。有关调用类型的更多信息,请参阅 调用类型

  • 事件结构 - 您的 Lambda 函数接收的事件针对单个对象并提供了存储桶名称和对象键名称等信息。

请注意,设置端到端体验时有两种类型的权限策略可供选择:

  • 针对 Lambda 函数的权限 - 无论哪个对象调用 Lambda 函数,AWS Lambda 都将通过代入您在创建 Lambda 函数时指定的 IAM 角色(执行角色)来执行该函数。利用与此角色关联的权限策略,您可以向 Lambda 函数授予其所需的权限。例如,如果 Lambda 函数需要读取某个对象,您可以在权限策略中为相关 Amazon S3 操作授予权限。有关更多信息,请参阅 管理权限:使用 IAM 角色(执行角色)

  • 供 Amazon S3 调用 Lambda 函数的权限 - Amazon S3 无法在未经您的许可的情况下调用 Lambda 函数。您通过与 Lambda 函数关联的权限策略授予此权限。

下图概述了该流程:

  1. 用户将对象上传到 S3 存储桶(对象创建事件)。

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

  3. Amazon S3 调用在存储桶通知配置中指定的 Lambda 函数。

  4. AWS Lambda 通过代入您在创建 Lambda 函数时指定的执行角色来执行 Lambda 函数。

  5. Lambda 函数执行。

有关引导您完成示例设置的教程,请参阅教程:将 AWS Lambda 与 Amazon S3 结合使用