使用 Amazon S3 对象 Lambda 接入点
通过 Amazon S3 对象 Lambda 接入点发出请求与通过其他接入点发出请求的工作方式相同。有关如何通过接入点发出请求的更多信息,请参阅 使用接入点。您可以使用 Amazon S3 控制台、Amazon Command Line Interface(Amazon CLI)、Amazon 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 接入点与 Amazon CLI 或 Amazon SDK 结合使用,您需要知道对象 Lambda 接入点的 Amazon 资源名称(ARN)。以下示例说明如何通过使用 Amazon S3 控制台或 Amazon CLI 查找对象 Lambda 接入点的 ARN。
使用控制台查找对象 Lambda 接入点的 ARN
登录到Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在左侧导航窗格中,选择对象 Lambda 接入点。
-
选择要复制其 ARN 的对象 Lambda 接入点旁边的选项按钮。
-
请选择复制 ARN。
使用 Amazon CLI 查找对象 Lambda 接入点的 ARN
-
要检索与 Amazon Web Services 账户 关联的对象 Lambda 接入点的列表,请运行以下命令。在运行命令之前,请将账户 ID
替换为您的 Amazon Web Services 账户 ID。111122223333
aws s3control list-access-points-for-object-lambda --account-id
111122223333
-
查看命令输出以查找您要使用的对象 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)。有关这些操作的列表,请参阅接入点与Amazon服务的兼容性。
对象 Lambda 接入点别名是在与 Amazon S3 存储桶相同的命名空间中创建的。此别名自动生成,无法更改。对于现有对象 Lambda 接入点,会自动分配别名以供使用。对象 Lambda 接入点别名符合有效 Amazon S3 存储桶名称的所有要求,包括以下部分:
Object Lambda Access Point
name prefix
-metadata
--ol-s3
注意
--ol-s3
后缀是为对象 Lambda 接入点别名预留的,不能用于存储桶或对象 Lambda 接入点名称。有关 Amazon S3 存储桶命名规则的更多信息,请参阅存储桶命名规则。
以下示例显示了名为
的对象 Lambda 接入点的 ARN 和对象 Lambda 接入点别名。my-object-lambda-access-point
-
ARN –
arn: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 接入点的别名
登录到Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在左侧导航窗格中,选择对象 Lambda 接入点。
-
对于要使用的对象 Lambda 接入点,复制对象 Lambda 接入点别名值。
创建对象 Lambda 接入点时,Amazon S3 会自动生成对象 Lambda 接入点别名,如以下示例命令所示。要运行此命令,请将
替换为您自己的信息。有关如何使用 Amazon CLI 创建对象 Lambda 接入点的信息,请参阅使用 Amazon CLI 创建对象 Lambda 接入点。user input
placeholders
aws s3control create-access-point-for-object-lambda --account-id
111122223333
--namemy-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 参考》中的 CreateAccessPointForObjectLambda 和 ObjectLambdaAccessPointAlias。
如何使用对象 Lambda 接入点别名
您可以使用对象 Lambda 接入点别名,而不是接入点与Amazon服务的兼容性中所列的操作的 Amazon S3 存储桶名称。
以下 get-bucket-location
命令的 Amazon CLI 示例使用存储桶的接入点别名来返回存储桶所在的 Amazon Web Services 区域。要运行此命令,请将
替换为您自己的信息。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 接入点别名的限制与接入点别名的限制相同。有关接入点别名限制的更多信息,请参阅限制。