

# S3 对象 Lambda 的最佳实践和指南
<a name="olap-best-practices"></a>

**注意**  
自 2025 年 11 月 7 日起，S3 对象 Lambda 仅可供当前在使用该服务的现有客户以及部分 AWS 合作伙伴网络（APN）合作伙伴使用。要了解与 S3 对象 Lambda 类似的功能，请在此处了解更多信息：[Amazon S3 Object Lambda availability change](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazons3-ol-change.html)。

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

**Topics**
+ [使用 S3 对象 Lambda](#olap-working-with)
+ [与 S3 对象 Lambda 结合使用的 AWS 服务](#olap-services)
+ [`Range` 和 `partNumber` 标头](#olap-managing-range-part)
+ [转换 `expiry-date`](#olap-console-download)
+ [使用 AWS CLI 和 AWS SDK](#olap-cli-sdk)

## 使用 S3 对象 Lambda
<a name="olap-working-with"></a>

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

S3 对象 Lambda 允许使用长达 60 秒的时间将完整的响应流式传输到发起人。您的函数还受 AWS Lambda 默认限额的约束。有关更多信息，请参阅《AWS Lambda 开发人员指南》**中的 [Lambda 配额](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html)。

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

您只能使用 S3 对象 Lambda 对于对象执行操作。您不能使用 S3 对象 Lambda 执行其他 Amazon S3 操作，例如修改或删除存储桶。有关支持接入点的 S3 操作的完整列表，请参阅[接入点与 S3 操作的兼容性](access-points-service-api-support.md#access-points-operations-support)。

除此列表之外，对象 Lambda 接入点不支持 [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)、[https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)（作为来源）和 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html) API 操作。

## 与 S3 对象 Lambda 结合使用的 AWS 服务
<a name="olap-services"></a>

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

## `Range` 和 `partNumber` 标头
<a name="olap-managing-range-part"></a>

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

有关更多信息，请参阅 [使用 Range 和 partNumber 标头](range-get-olap.md)。

## 转换 `expiry-date`
<a name="olap-console-download"></a>

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

## 使用 AWS CLI 和 AWS SDK
<a name="olap-cli-sdk"></a>

不支持将 AWS Command Line Interface（AWS CLI）S3 子命令（`cp`、`mv` 和 `sync`）和 适用于 Java 的 AWS SDK `TransferManager` 类与 S3 对象 Lambda 结合使用。