如果您希望在发送GetObject请求时OSS可以自动触发函数计算服务,并将检索到的数据的转换结果返回给应用程序,您需要通过对象FC接入点发送请求。通过对象FC接入点,您可以在保持Object存储语义且无需改造客户端的情况下,无缝接入对文件内容修改或过滤的能力。本文介绍如何创建对象FC接入点。
前提条件
Bucket所属地域必须为:华东1(杭州)、华东2(上海)、华北1(青岛)、华北2(北京)、华北 3(张家口)、华北5(呼和浩特)、华南1(深圳)、西南1(成都)、中国香港、美国(硅谷)、美国(弗吉尼亚)、日本(东京)、韩国(首尔)、新加坡、马来西亚(吉隆坡)、印度尼西亚(雅加达)、德国(法兰克福)、英国(伦敦)。
已在以上Bucket所属地域创建接入点。具体操作,请参见创建接入点
已在以上Bucket所属地域创建函数计算服务。具体操作,请参见创建服务。
为已创建服务关联的默认角色(AliyunFCDefaultRole)授予
oss:WriteGetObjectResponse
权限。具体的权限策略如下:{ "Statement": [ { "Action": "oss:WriteGetObjectResponse", "Effect": "Allow", "Resource": "*" } ], "Version": "1" }
具体步骤,请参见为RAM角色授权。
在已创建的函数计算服务中创建函数。
支持通过Java、Python、Go SDK调用GetObject接口时触发函数计算,通过这几种语言SDK部署函数代码时,您需要创建符合运行环境要求的函数。
通过Java SDK部署函数代码时,需要创建运行环境为Java 11的函数。
通过Python SDK部署函数代码时,需要创建运行环境为Python 3.10的函数。
通过Go SDK部署函数代码时,需要创建运行环境为Go 1的函数。
其他参数保留默认配置。具体操作,请参见创建函数。
RAM用户必须拥有以下权限:
oss:CreateAccessPointForObjectProcess
、oss:GetAccessPointForObjectProcess
、oss:DeleteAccessPointForObjectProcess
、oss:ListAccessPointsForObjectProcess
、oss:PutAccessPointConfigForObjectProcess
、oss:GetAccessPointConfigForObjectProcess
、oss:PutAccessPointPolicyForObjectProcess
、oss:GetAccessPointPolicyForObjectProcess
和oss:DeleteAccessPointPolicyForObjectProcess
。具体操作,请参见RAM Policy常见示例。
使用限制
限制项 | 说明 |
创建方式 | 仅支持通过OSS控制台和API的方式创建对象FC接入点。不支持通过SDK、ossutil等方式创建对象FC接入点。 |
数量 |
|
修改规则 | 创建对象FC接入点后,仅支持修改接入点策略,不支持修改接入点基础信息,例如接入点名称、接入点别名等。 |
访问方式 | 不支持匿名访问。 |
使用OSS控制台
登录OSS管理控制台。
在左侧导航栏,单击对象FC接入点列表。
在对象FC接入点列表页面,单击创建对象FC接入点。
在创建对象FC接入点对话框,按说明完成以下配置项,然后单击确定。
配置项
说明
地域
下拉选择关联接入点所在地域。
对象FC接入点名称
为对象FC接入点命名。命名规范说明如下:
命名长度不能超过63个字符。
只允许包含小写字母、数字、短横线(
-
),且不能以短横线开头或结尾。名称在当前地域必须唯一。
支持的接入点
选择已创建的接入点。
存储桶名称
显示接入点关联的存储空间名称。
OSS API
选中GetObject。
FC函数服务
选择已创建的函数计算服务。
调用 FC 函数
选择已创建的函数,并选中FC 函数支持使用 Range GetObject 请求。
FC 函数版本
选择已创建函数对应的版本。如果置空,则默认使用LATEST版本。
完成角色授权。
首次创建对象FC接入点时,您需要通过单击RAM授权并按照页面指引完成
AliyunOSSObjectFcForOSSDefaultRole
角色授权。为确保OSS服务账号可以正常调用函数计算服务,请勿禁用、修改或者删除该角色以及该角色关联的权限策略。单击完成。
对象FC接入点创建完成预计需要10分钟左右。
对象FC接入点创建后,对象FC接入点列表页面将显示OSS自动创建的对象FC接入点别名。
不支持修改、删除或者禁用对象FC接入点别名。
仅当通过对象FC接入点别名访问GetObject接口时会触发函数计算。当使用对象FC接入点别名访问非GetObject接口时,后台将自动切换为OSS接入点,并遵循OSS接入点的权限策略。
使用REST API
如果您的程序自定义要求较高,您可以直接发起REST API请求。直接发起REST API请求需要手动编写代码计算签名。更多信息,请参见CreateAccessPointForObjectProcess。