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

S3 对象 Lambda 的最佳实践和指南

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

使用 S3 对象 Lambda

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

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

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

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

除此列表外,对象 Lambda 接入点不支持 POST ObjectCopyObject(作为源)和 SelectObjectContent API 操作。

与 S3 对象 Lambda 结合使用的 Amazon Web Services

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

RangepartNumber 标头

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

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

转换 expiry-date

您可以在 Amazon Web Services Management Console上从对象 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 对象 Lambda 结合使用。