S3 Object Lambda 的最佳实践和指南 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

S3 Object Lambda 的最佳实践和指南

使用 S3 Object Lambda 时,请遵循以下最佳实践和指南来优化操作和性能。

使用 S3 Object Lambda

S3 Object Lambda 仅支持处理 GETLISTHEAD 请求。任何其他请求都不会调用 Amazon Lambda,而是返回标准的未转换 API 响应。每个区域每个 Amazon Web Services 账户最多可以创建 1000 个 Object Lambda 访问点。您使用的 Amazon Lambda 函数必须与 Object Lambda 访问点位于同一 Amazon Web Services 账户和区域中。

S3 Object Lambda 允许使用长达 60 秒的时间将完整的响应流式传输到发起人。您的函数还受 Amazon Lambda 原定设置限额的约束。有关更多信息,请参阅《Amazon Lambda 开发人员指南》中的 Lambda 配额

当 S3 Object Lambda 调用您指定的 Lambda 函数时,您有责任确保指定的 Lambda 函数或应用程序从 Amazon S3 中覆盖或删除的任何数据都符合预期且正确。

您只能使用 S3 Object Lambda 对于对象执行操作。您不能使用 S3 Object Lambda 执行其他 Amazon S3 操作,例如修改或删除桶。有关支持访问点的 S3 操作的完整列表,请参阅接入点与 S3 操作的兼容性

除此列表外,Object Lambda 访问点不支持 POST ObjectCopyObject(作为源)和 SelectObjectContent API 操作。

与 S3 Object Lambda 结合使用的 Amazon Web Services

S3 Object Lambda 可以连接 Amazon S3 和 Amazon Lambda,也可以连接您选择的其他 Amazon Web Services,以交付与发出请求的应用程序相关的对象。与 S3 Object Lambda 结合使用的所有 Amazon Web Services将继续受其各自服务水平协议(SLA)管控。例如,如有任何 Amazon Web Service不遵守其服务承诺,您将有资格获得该服务的 SLA 中介绍的服务积分。

RangepartNumber 标头

使用大型对象时,您可以使用 Range HTTP 标头从对象中下载指定的字节范围。当您使用 Range 标头时,您的请求仅提取对象的指定部分。您还可以使用 partNumber 标头对于对象中的指定分段执行范围内的请求。

有关更多信息,请参阅使用 Range 和 partNumber 标头

转换 expiry-date

您可以从 Amazon Web Services Management Console上的 Object Lambda 访问点打开或下载转换后的对象。这些对象必须未过期。如果您的 Lambda 函数转换了对象的 expiry-date,您可能会看到无法打开或下载的过期对象。此行为仅适用于 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 还原的对象。

使用 Amazon CLI 和 Amazon SDK

不支持将 Amazon Command Line Interface(Amazon CLI)S3 子命令(cpmvsync)和 Amazon SDK for Java TransferManager 类与 S3 Object Lambda 结合使用。