Amazon S3 Object Lambda

将您自己的代码添加到 S3 GET、HEAD 和 LIST 请求中,以便在数据返回到应用程序时修改和处理数据

概览

借助 S3 Object Lambda,您可以将自己的代码添加到 S3 GET、HEAD 和 LIST 请求中,以便在数据返回到应用程序时修改和处理数据。您可以使用自定义代码来修改 S3 GET 请求返回的数据,以便实施筛选行、动态调整图像大小、隐去机密数据等操作。您还可以使用 S3 Object Lambda 来修改 S3 LIST 请求的输出,以创建存储桶中对象的自定义视图,并使用 S3 HEAD 请求修改对象元数据(如对象名称和大小)。在 AWS Lambda 函数的支持下,无需对应用程序进行任何更改,您的代码即可在 AWS 完全托管的基础设施上运行,不需要创建和存储数据的衍生副本,也不需要运行昂贵的代理。

S3 Object Lambda 使用 AWS Lambda 函数自动处理标准 S3 GET、HEAD 和 LIST 请求的输出。只需在 AWS 管理控制台中单击几下,即可配置 Lambda 函数并将其附加到 S3 Object Lambda 访问点。此后,S3 将自动调用 Lambda 函数来处理通过 S3 Object Lambda 访问点检索到的任何数据,并将转换后的结果返回应用程序。您可以编写和执行自己的自定义 Lambda 函数,根据您的特定使用案例定制 S3 Object Lambda 的数据转换。

优势

借助 S3 Object Lambda,您可以灵活地从 S3 GET、HEAD 和 LIST 请求直接调用 Lambda 函数,以根据应用程序的特定需求处理数据。S3 Object Lambda 使用 S3 和 AWS Lambda 的完全托管式基础设施及其所有特性和功能。您可以使用新的或现有 Amazon Lambda 函数来处理数据,例如筛选、遮蔽、隐去、压缩、更改格式或修改特定应用程序的对象。

在 AWS Lambda 函数的支持下,无需对应用程序进行任何更改,您的代码即可在 AWS 完全托管的基础设施上运行,不需要创建和存储数据的衍生副本,也不需要运行昂贵的代理。您可以通过 S3 GET、HEAD 和 LIST 请求运行 AWS Lambda 函数以处理对象,方法是通过更新应用程序以使用 S3 Object Lambda 访问点,这将调用 Lambda 函数并将经过处理的对象传输至请求客户端。

S3 Object Lambda 可以让您轻松转换不同应用程序的 S3 数据,无需复杂的软件和基础设施,也无需创建数据的衍生副本。您可以添加自己的代码以处理从 S3 检索到的数据,然后再将其返回到应用程序。S3 Object Lambda 适用于您的现有应用程序,您无需更改代码。您可以通过标准 S3 GET、HEAD 和 LIST 请求轻松为不同应用程序展示多个数据视图。

S3 对象 Lambda 的工作原理是什么?

S3 Object Lambda:工作原理

S3 Object Lambda 可以帮助您轻松满足任何应用程序的独特数据格式要求,而无需构建和运行额外的基础设施(例如代理层),也不必创建和维护数据的多个衍生副本。S3 Object Lambda 使用 AWS Lambda 函数自动处理标准 S3 GET、HEAD 和 LIST 请求的输出。AWS Lambda 是一种无服务器计算服务,无需管理底层计算资源即可运行客户定义的代码。

只需在 AWS 管理控制台中单击几下,即可配置 Lambda 函数并将其附加到 S3 Object Lambda 访问点。通过 S3 Object Lambda 访问点发出的标准 S3 GET、HEAD 和 LIST 请求现在将调用指定的 Lambda 函数。此后,S3 将自动调用 Lambda 函数来处理通过 S3 Object Lambda 访问点检索到的任何数据,并将转换后的结果返回应用程序。您可以编写和执行自己的自定义 Lambda 函数,根据您的特定使用案例定制 S3 Object Lambda 的数据转换。要了解更多信息,请参阅 S3 对象 Lambda 用户指南

S3 Object Lambda 使用案例:隐去敏感数据

S3 对象 Lambda:工作原理

S3 对象 Lambda 可用于针对特定应用程序隐去 S3 中对象的敏感信息,而无需更改现有对象,也无需创建和维护数据的多个衍生副本。 Lambda 函数将从标准 S3 GET 请求中检索对象,处理数据以删除敏感详细信息,并将隐去的对象返回应用程序。要了解有关其他使用案例的更多信息,请参阅 S3 对象 Lambda 用户指南

客户

  • Pixieset

    Pixieset 是一个面向现代摄影师的一体化平台,提供照片、客户图库、网站、在线商店和工作室管理软件工具。

    Pixieset 使用 Amazon S3 对象 Lambda 即时转换图像

    Pixieset 的使命是为世界各地的摄影师和创意人员经营和发展业务提供支持。我们的客户上传照片,然后在不同的查看设备(例如智能手机、平板电脑或台式机)上与他们的客户共享。为了优化照片的分发,我们目前会在使用 AWS Lambda 将图像上传到 Amazon S3 后不久生成具有不同分辨率的副本。我们对 Amazon S3 对象 Lambda 与 Amazon CloudFront 的集成感到非常兴奋,因为我们可以在从 Amazon CloudFront 访问图像时即时应用转换和水印。我们能够利用全局缓存的优势,同时不再需要存储同一图像的多个副本。

    Sam Lin,Pixieset 工程主管
  • Audible

    Audible 是优质音频故事的领先创作者和提供商,为客户提供了一种新方式来改善和丰富日常生活。Audible 内容包括超过 790000 种有声读物、播客和 Audible Originals。Audible 在全球拥有数百万会员,他们订阅了为澳大利亚、加拿大、法国、德国、印度、意大利、日本、西班牙、英国和美国的客户设计的 10 项本地化服务之一。  

    Audible 使用 Amazon S3 对象 Lambda 动态修改清单以提供效果出众的直播

    博客:Audible 如何使用 Amazon S3 对象 Lambda 来改善直播播放效果

    用户从各种设备和地理位置,以强大或受限的互联网连接访问和流式传输 Audible 上的内容。我们使用 Amazon S3 对象 Lambda 动态修改清单和区段大小,无论用户是在家还是在旅途中,都能为他们提供最高性能和高质量的流媒体和音频娱乐体验。借助 S3 对象 Lambda,我们能够提高播放性能,进而通过技术创新和出色的编程进一步增强客户体验。

    Saurabh Gandhi,Audible 软件开发高级总监
  • Trend Micro

    全球网络安全领导者 Trend Micro 帮助确保世界各地安全地交换数字信息。在数十年的安全专业知识、全球威胁研究和持续创新的推动下,Trend Micro 的网络安全平台通过云、网络、设备和端点保护成千上万的组织和数百万个人。Trend Micro 的网络安全平台提供了一系列针对 AWS 优化的强大的高级威胁防御技术。

    博客:Trend Micro 如何使用 Amazon S3 对象 Lambda 来帮助保护敏感数据的安全

    我们喜欢它容易上手的特点。通过在我们的文件存储安全解决方案中使用 S3 对象 Lambda,我们不到一天就能完成概念验证,包括与现有插件集的集成的第一个完整版本可在一天后完成。

    Mike Milner,Trend Micro 产品管理总监
  • Druva

    Druva 提供跨端点、数据中心和云工作负载的数据保护和管理,消除了对复杂的基础设施和耗时的管理的依赖。

    我们的 4000 家客户需要满足不断扩大的全球数据保护、合规和安全要求。Amazon S3 Object Lambda 是一项适应市场变化而产生的创新,它使计算资源更接近集中式数据存储库,有助于我们的客户从他们的数据中提取更多的价值。作为一个完全建立在 AWS 基础之上的平台,Druva 致力于不断利用 AWS 的最新功能和技术增强用户体验。由 AWS 提供支持的 Druva 云平台和 Amazon S3 对象 Lambda 融合在一起后,将为组织带来无与伦比的集成机会,还可以直接访问和分析,从而充分释放备份数据的潜力。

    Stephen Manley,Druva 首席技术官
  • Nasuni

     

    Nasuni 利用 Amazon S3 支持的云方法实现了文件存储颠覆性变革,取代了传统的本地主存储和辅助存储。Nasuni 提供了一个使用对象存储的文件存储平台,实现了一种更简单、成本更低、更高效的云解决方案,该解决方案可进行扩展以处理快速的非结构化数据增长。

    S3 对象 lambda 彻底改变了 Nasuni 的局面,它将成为我们在 AWS 上的云文件存储服务的核心技术。我们使用 S3 Object Lambda 为我们基于对象存储的专用文件系统创建一个简单、可扩展的 API。我们的企业客户可以使用它直接从 S3 存储桶访问他们的文件,而无需通过 Nasuni 边缘设备。这意味着他们可以轻松地将非结构化数据从 Nasuni 连接到 Macie 和 Kendra 等 AWS 分析服务,从而让企业能够从他们的文件数据中获得见解。

    Nasuni 首席产品官 Russ Kennedy
  • PetaGene

    PetaGene 成立于基因组学的诞生地剑桥,旨在解决基因组学行业中快速增长的数据管理问题。PetaGene 因其具有行业领先性能和可用性的基因组压缩和加密解决方案而享有盛誉 – 该公司的软件现在为各种数据提供加密、选择性数据共享和审计解决方案,这些解决方案也受益于这一同样无缝透明的访问方法。

    PetaGene 可帮助组织保护数据,以便他们可以控制和审计不同用户可以看到的内容,只公开每个文件中允许用户看到的内容。 PetaGene 还能高效地压缩已经压缩过的 NGS 基因组数据,压缩量可达原来的 11 倍,同时不会造成任何形式的损失。虽然用户已经能够通过将我们的用户模式读回库加载到他们的环境,以原生格式透明地访问受保护和/或已压缩的数据,但利用 S3 Object Lambda,用户不仅可以通过标准 S3 GET 请求访问原生格式的数据,而且不需要用户执行任何库安装。这使得客户更轻松地为最终用户部署 PetaGene 的数据保护、合规性和压缩产品。

    Dan Greenfield 博士,PetaGene 联合创始人兼首席执行官

S3 对象 Lambda 资源

使用 Amazon S3 对象 Lambda 自定义数据 (14:45)
使用 Amazon S3 或 Amazon EFS 构建无服务器的现代应用程序 (30:13)

开始使用

通过三个简单步骤在 S3 管理控制台中对 S3 Object Lambda 进行设置。首先,导航到控制台上的 Object Lambda Access Point(Object Lambda 访问点)选项卡。其次,创建一个 S3 Object Lambda 访问点,然后在它的配置中为此资源命名并提供要针对 S3 GET、HEAD 或 LIST 请求调用的 Lambda 函数和一个支持 S3 的访问点。AWS 文档中提供了 Lambda 函数实施的示例,可以帮助您开始使用该服务。最后,更新您的开发工具包和应用程序,以便通过新的 S3 Object Lambda 访问点使用您选择的语言开发工具包从 S3 检索数据。S3 对象 Lambda 将开始处理标准 S3 GET、HEAD 和 LIST 请求。

访问 S3 对象 Lambda 入门教程阅读用户指南,了解有关如何入门的更多信息。