使用 Amazon S3 对象 Lambda 接入点 - Amazon Simple Storage Service

使用 Amazon S3 对象 Lambda 接入点

通过 Amazon S3 对象 Lambda 接入点发出请求与通过其他接入点发出请求的工作方式相同。有关如何通过接入点发出请求的更多信息,请参阅 使用接入点。您可以使用 Amazon S3 控制台、AWS Command Line Interface(AWS CLI)、AWS SDK 或 Amazon S3 REST API,通过对象 Lambda 接入点发出请求。

重要

对象 Lambda 接入点的 Amazon 资源名称(ARN)使用 s3-object-lambda 的服务名称。因此,对象 Lambda 接入点 ARN 以 arn:aws::s3-object-lambda(而不是 arn:aws::s3)开头,它与其他接入点结合使用。

如何查找对象 Lambda 接入点的 ARN

要将对象 Lambda 接入点与 AWS CLI 或 AWS SDK 结合使用,您需要知道对象 Lambda 接入点的 Amazon 资源名称(ARN)。以下示例说明如何通过使用 Amazon S3 控制台或 AWS CLI 查找对象 Lambda 接入点的 ARN。

使用控制台查找对象 Lambda 接入点的 ARN
  1. 登录到AWS Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择对象 Lambda 接入点

  3. 选择要复制其 ARN 的对象 Lambda 接入点旁边的选项按钮。

  4. 请选择复制 ARN

使用 AWS CLI 查找对象 Lambda 接入点的 ARN
  1. 要检索与 AWS 账户 关联的对象 Lambda 接入点的列表,请运行以下命令。在运行命令之前,请将账户 ID 111122223333 替换为您的 AWS 账户 ID。

    aws s3control list-access-points-for-object-lambda --account-id 111122223333
  2. 查看命令输出以查找您要使用的对象 Lambda 接入点 ARN。前一个命令的输出内容应类似如下示例。

    { "ObjectLambdaAccessPointList": [ { "Name": "my-object-lambda-ap", "ObjectLambdaAccessPointArn": "arn:aws:s3-object-lambda:us-east-1:111122223333:accesspoint/my-object-lambda-ap" }, ... ] }

如何为您的 S3 存储桶对象 Lambda 接入点使用存储桶式别名

当您创建对象 Lambda 接入点时,Amazon S3 会自动为您的对象 Lambda 接入点生成一个唯一的别名。您可以在接入点数据面板操作请求中使用此别名,而不使用 Amazon S3 存储桶名称或对象 Lambda 接入点 Amazon 资源名称(ARN)。有关这些操作的列表,请参阅接入点与AWS服务的兼容性

对象 Lambda 接入点别名是在与 Amazon S3 存储桶相同的命名空间中创建的。此别名自动生成,无法更改。对于现有对象 Lambda 接入点,会自动分配别名以供使用。对象 Lambda 接入点别名符合有效 Amazon S3 存储桶名称的所有要求,包括以下部分:

Object Lambda Access Point name prefix-metadata--ol-s3

注意

--ol-s3 后缀是为对象 Lambda 接入点别名预留的,不能用于存储桶或对象 Lambda 接入点名称。有关 Amazon S3 存储桶命名规则的更多信息,请参阅存储桶命名规则

以下示例显示了名为 my-object-lambda-access-point 的对象 Lambda 接入点的 ARN 和对象 Lambda 接入点别名。

  • ARNarn:aws:s3-object-lambda:region:account-id:accesspoint/my-object-lambda-access-point

  • 对象 Lambda 接入点别名my-object-lambda-acc-1a4n8yjrb3kda96f67zwrwiiuse1a--ol-s3

当您使用对象 Lambda 接入点时,无需进行大量代码更改,即可使用对象 Lambda 接入点别名。

当您删除对象 Lambda 接入点时,对象 Lambda 接入点别名将变为非活动状态且未调配。

如何查找对象 Lambda 接入点的别名

使用控制台查找对象 Lambda 接入点的别名
  1. 登录到AWS Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择对象 Lambda 接入点

  3. 对于要使用的对象 Lambda 接入点,复制对象 Lambda 接入点别名值。

创建对象 Lambda 接入点时,Amazon S3 会自动生成对象 Lambda 接入点别名,如以下示例命令所示。要运行此命令,请将 user input placeholders 替换为您自己的信息。有关如何使用 AWS CLI 创建对象 Lambda 接入点的信息,请参阅使用 AWS CLI 创建对象 Lambda 接入点

aws s3control create-access-point-for-object-lambda --account-id 111122223333 --name my-object-lambda-access-point --configuration file://my-olap-configuration.json { "ObjectLambdaAccessPointArn": "arn:aws:s3:region:111122223333:accesspoint/my-access-point", "Alias": { "Value": "my-object-lambda-acc-1a4n8yjrb3kda96f67zwrwiiuse1a--ol-s3", "Status": "READY" } }

生成的对象 Lambda 接入点别名有两个字段:

  • Value 字段是对象 Lambda 接入点的别名值。

  • Status 字段是对象 Lambda 接入点别名的状态。如果状态为 PROVISIONING,则 Amazon S3 正在预调配对象 Lambda 接入点别名,并且该别名尚未准备就绪,无法使用。如果状态为 READY,则对象 Lambda 接入点别名已成功调配,并准备就绪可供使用。

有关 REST API 中 ObjectLambdaAccessPointAlias 数据类型的更多信息,请参阅《Amazon Simple Storage Service API 参考》中的 CreateAccessPointForObjectLambdaObjectLambdaAccessPointAlias

如何使用对象 Lambda 接入点别名

您可以使用对象 Lambda 接入点别名,而不是接入点与AWS服务的兼容性中所列的操作的 Amazon S3 存储桶名称。

以下 get-bucket-location 命令的 AWS CLI 示例使用存储桶的接入点别名来返回存储桶所在的 AWS 区域。要运行此命令,请将 user input placeholders 替换为您自己的信息。

aws s3api get-bucket-location --bucket my-object-lambda-acc-w7i37nq6xuzgax3jw3oqtifiusw2a--ol-s3 { "LocationConstraint": "us-west-2" }

如果请求中的对象 Lambda 接入点别名无效,则返回错误代码 InvalidAccessPointAliasError。有关 InvalidAccessPointAliasError 的更多信息,请参阅《Amazon Simple Storage Service API 参考》中的错误代码列表

对象 Lambda 接入点别名的限制与接入点别名的限制相同。有关接入点别名限制的更多信息,请参阅限制