使用 S3 对象 Lambda 转换对象 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 S3 对象 Lambda 转换对象

借助 Amazon S3 对象 Lambda,您可以将自己的代码添加到 Amazon S3 GETLISTHEAD 请求中,以便在数据返回到应用程序时修改和处理数据。您可以使用自定义代码修改由 S3 GET 请求返回的数据,以便执行筛选行、动态调整图像大小和给图像加水印、隐去机密数据等操作。您还可以使用 S3 对象 Lambda 修改 S3 LIST 请求的输出以创建存储桶中所有对象的自定义视图,以及修改 S3 HEAD 请求以修改对象元数据(如对象名称和大小)。您可以使用 S3 对象 Lambda 作为 Amazon CloudFront 分配的来源,以便为最终用户量身定制数据,例如自动调整图像大小、对旧格式进行转码(例如从 JPEG 转码为 WebP)或剥离元数据。有关更多信息,请参阅 Amazon 博客文章将 Amazon S3 对象 Lambda 与 Amazon CloudFront 结合使用。在 Amazon Lambda 函数的支持下,您的代码在完全由 Amazon 管理的基础设施上运行。使用 S3 对象 Lambda 可以减少创建和存储数据的衍生副本或运行代理的需要,所有这些都无需更改应用程序。

S3 对象 Lambda 的工作原理

S3 对象 Lambda 使用 Amazon Lambda 函数来自动处理标准 S3 GETLISTHEAD 请求的输出。Amazon Lambda 是一种无服务器计算服务,它运行客户定义的代码,而无需管理底层计算资源。您可以编写和运行自己的自定义 Lambda 函数,根据您的特定使用案例定制数据转换。

配置 Lambda 函数后,您可以将其附加到 S3 对象 Lambda 服务端点(称为对象 Lambda 接入点)。对象 Lambda 接入点使用标准 S3 接入点(称为支持接入点)来访问 Amazon S3。

当您向对象 Lambda 接入点发送请求时,Amazon S3 会自动调用您的 Lambda 函数。然后,使用 S3 GETLISTHEAD 请求通过对象 Lambda 接入点检索的任何数据都会将转换后的结果返回给应用程序。将正常处理所有其他请求,如下图所示。


            S3 对象 Lambda 图,显示了当通过对象 Lambda 接入点从客户端应用程序发出 GET、LIST 或 HEAD 请求时,如何对这些请求进行转换。

本节中的主题介绍了如何使用 S3 对象 Lambda。

有关 S3 对象 Lambda 教程,请参阅以下内容:

有关标准接入点的更多信息,请参阅 使用 Amazon S3 接入点管理数据访问

有关使用存储桶的信息,请参阅 存储桶概述。有关使用对象的信息,请参阅 Amazon S3 对象概述