S3 对象 Lambda 的最佳实践和指南 - Amazon Simple Storage Service

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

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

使用 S3 对象 Lambda

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

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

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

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

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

与 S3 对象 Lambda 结合使用的 AWS 服务

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

RangepartNumber 标头

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

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

转换 expiry-date

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

使用 AWS CLI 和 AWS SDK

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