如果您希望在發送GetObject請求時OSS可以自動觸發Function Compute服務,並將檢索到的資料的轉換結果返回給應用程式,您需要通過對象FC存取點發送請求。通過對象FC存取點,您可以在保持Object儲存語義且無需改造用戶端的情況下,無縫接入對檔案內容修改或過濾的能力。本文介紹如何建立對象FC存取點。
前提條件
Bucket所屬地區必須為:華東1(杭州)、華東2(上海)、華北1(青島)、華北2(北京)、華北 3(張家口)、華北5(呼和浩特)、華南1(深圳)、西南1(成都)、中國香港、美國(矽谷)、美國(維吉尼亞)、日本(東京)、韓國(首爾)、新加坡、馬來西亞(吉隆坡)、印尼(雅加達)、德國(法蘭克福)、英國(倫敦)。
已在Bucket所屬地區建立存取點。具體操作,請參見建立存取點
已在Bucket所屬地區建立Function Compute服務。具體操作,請參見建立服務。
為已建立服務關聯的預設角色(AliyunFCDefaultRole)授予
oss:WriteGetObjectResponse許可權。具體的權限原則如下:{ "Statement": [ { "Action": "oss:WriteGetObjectResponse", "Effect": "Allow", "Resource": "*" } ], "Version": "1" }具體步驟,請參見為RAM角色授權。
在已建立的Function Compute服務中建立函數。
支援通過Java、Python、Go SDK調用GetObject介面時觸發Function Compute,通過這幾種語言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 函數支援使用 Range GetObject 請求。
FC 函數版本
選擇已建立函數對應的版本。如果置空,則預設使用LATEST版本。
完成角色授權。
首次建立對象FC存取點時,您需要通過單擊RAM授權並按照頁面指引完成
AliyunOSSObjectFcForOSSDefaultRole角色授權。為確保OSS服務帳號可以正常調用Function Compute服務,請勿禁用、修改或者刪除該角色以及該角色關聯的權限原則。單擊完成。
對象FC存取點建立完成預計需要10分鐘左右。
對象FC存取點建立後,對象FC存取點列表頁面將顯示OSS自動建立的對象FC存取點別名。
不支援修改、刪除或者禁用對象FC存取點別名。
僅當通過對象FC存取點別名訪問GetObject介面時會觸發Function Compute。當使用對象FC存取點別名訪問非GetObject介面時,後台將自動切換為OSS存取點,並遵循OSS存取點的權限原則。
使用REST API
如果您的程式自訂要求較高,您可以直接發起REST API請求。直接發起REST API請求需要手動編寫代碼計算簽名。更多資訊,請參見CreateAccessPointForObjectProcess。