使用函數(shù)計(jì)算
通過函數(shù)計(jì)算訪問表格存儲(chǔ),對(duì)表格存儲(chǔ)增量數(shù)據(jù)進(jìn)行實(shí)時(shí)計(jì)算。
背景信息
函數(shù)計(jì)算(Function Compute,簡(jiǎn)稱FC)是事件驅(qū)動(dòng)的全托管計(jì)算服務(wù)。使用函數(shù)計(jì)算,您無需采購與管理服務(wù)器等基礎(chǔ)設(shè)施,只需編寫并上傳代碼或鏡像。函數(shù)計(jì)算為您準(zhǔn)備好計(jì)算資源,彈性地、可靠地運(yùn)行任務(wù),并提供日志查詢、性能監(jiān)控和報(bào)警等功能。更多信息,請(qǐng)參見什么是函數(shù)計(jì)算。函數(shù)計(jì)算示例請(qǐng)參見表格存儲(chǔ)函數(shù)計(jì)算示例。
Tablestore Stream是用于獲取Tablestore表中增量數(shù)據(jù)的一個(gè)數(shù)據(jù)通道,通過創(chuàng)建Tablestore觸發(fā)器,能夠?qū)崿F(xiàn)Stream和函數(shù)計(jì)算的自動(dòng)對(duì)接,讓計(jì)算函數(shù)中自定義的程序邏輯自動(dòng)處理Tablestore表中發(fā)生的數(shù)據(jù)修改。關(guān)于Tablestore觸發(fā)器的更多信息,請(qǐng)參見Tablestore觸發(fā)器。
使用場(chǎng)景
使用函數(shù)計(jì)算可以實(shí)現(xiàn)如下任務(wù),如下圖所示。
數(shù)據(jù)同步:同步表格存儲(chǔ)中的實(shí)時(shí)數(shù)據(jù)到數(shù)據(jù)緩存、搜索引擎或者其他數(shù)據(jù)庫實(shí)例中。
數(shù)據(jù)歸檔:增量歸檔表格存儲(chǔ)中的數(shù)據(jù)到OSS等做冷備份。
事件驅(qū)動(dòng):利用觸發(fā)器觸發(fā)函數(shù)調(diào)用IoT套件、云應(yīng)用API或者做消息通知等。
準(zhǔn)備工作
已創(chuàng)建表格存儲(chǔ)實(shí)例和數(shù)據(jù)表。具體操作,請(qǐng)參見創(chuàng)建實(shí)例和創(chuàng)建數(shù)據(jù)表。
已開通函數(shù)計(jì)算服務(wù)。具體操作,請(qǐng)參見開通函數(shù)計(jì)算服務(wù)。
注意事項(xiàng)
目前支持使用Tablestore觸發(fā)器的地域有:華北2(北京)、華東1(杭州)、華東2(上海)、華南1(深圳)、日本(東京)、新加坡、澳大利亞(悉尼)關(guān)停中、德國(法蘭克福)和中國香港。
表格存儲(chǔ)數(shù)據(jù)表與函數(shù)計(jì)算服務(wù)要處于同一地域。
如果您需要Tablestore觸發(fā)器對(duì)應(yīng)的函數(shù)通過內(nèi)網(wǎng)訪問表格存儲(chǔ),您必須使用表格存儲(chǔ)的VPC Endpoint,不可以使用表格存儲(chǔ)的內(nèi)網(wǎng) Endpoint。詳細(xì)信息,請(qǐng)參見開啟VPC功能對(duì)可用性的影響。
VPC Endpoint的格式為{instanceName}.{regionId}.vpc.tablestore.aliyuncs.com。詳細(xì)信息,請(qǐng)參見獲取服務(wù)地址。
編寫函數(shù)時(shí),請(qǐng)注意不要出現(xiàn)以下邏輯:表格存儲(chǔ)Table A觸發(fā)函數(shù)B,函數(shù)B又更新Table A的數(shù)據(jù)。這種邏輯會(huì)造成函數(shù)無限調(diào)用問題。
觸發(fā)的函數(shù)執(zhí)行時(shí)間不能超過一分鐘。
如果函數(shù)執(zhí)行出現(xiàn)異常,函數(shù)將無限重試直到Tablestore中的日志數(shù)據(jù)過期。
說明函數(shù)執(zhí)行異常有以下情況:
函數(shù)代碼運(yùn)行異常:函數(shù)實(shí)例已拉起,因此函數(shù)實(shí)例運(yùn)行的時(shí)間段內(nèi)會(huì)產(chǎn)生費(fèi)用。
函數(shù)啟動(dòng)異常:函數(shù)實(shí)例由于啟動(dòng)指令錯(cuò)誤等原因未成功拉起,此時(shí)不會(huì)產(chǎn)生費(fèi)用。
如果函數(shù)執(zhí)行異常,為避免函數(shù)無限重試,您可以關(guān)閉數(shù)據(jù)表的Stream功能。在關(guān)閉數(shù)據(jù)表的Stream功能前請(qǐng)確認(rèn)沒有其他觸發(fā)器在使用該數(shù)據(jù)表,防止導(dǎo)致其他觸發(fā)器異常。
步驟一:為數(shù)據(jù)表開啟Stream功能
使用觸發(fā)器功能需要先在表格存儲(chǔ)控制臺(tái)開啟數(shù)據(jù)表的Stream功能,才能在函數(shù)計(jì)算中處理寫入表格存儲(chǔ)中的增量數(shù)據(jù)。
在頁面上方,選擇地域。
在概覽頁面,單擊實(shí)例名稱或在實(shí)例操作列單擊實(shí)例管理。
在實(shí)例詳情頁簽的數(shù)據(jù)表列表頁簽,單擊數(shù)據(jù)表名稱后選擇實(shí)時(shí)消費(fèi)通道頁簽或單擊后選擇實(shí)時(shí)消費(fèi)通道。
在實(shí)時(shí)消費(fèi)通道頁簽,單擊Stream信息對(duì)應(yīng)的開啟。
在開啟Stream功能對(duì)話框,設(shè)置日志過期時(shí)長,單擊開啟。
日志過期時(shí)長取值為非零整數(shù),單位為小時(shí),最長時(shí)長為168小時(shí)。
重要日志過期時(shí)長設(shè)置后不能修改,請(qǐng)謹(jǐn)慎設(shè)置。
步驟二:創(chuàng)建函數(shù)和Tablestore觸發(fā)器
創(chuàng)建函數(shù)。
可選:在頁面右上角,單擊體驗(yàn)函數(shù)計(jì)算3.0。
說明函數(shù)計(jì)算3.0進(jìn)行了多項(xiàng)功能改進(jìn),本文采用函數(shù)計(jì)算3.0進(jìn)行函數(shù)計(jì)算的使用介紹。
若您已進(jìn)入新版控制臺(tái)頁面(頁面右上角的按鈕為返回函數(shù)計(jì)算2.0),則無需執(zhí)行此操作。
在左側(cè)導(dǎo)航欄,單擊函數(shù)。
在頂部菜單欄,選擇地域,然后在函數(shù)頁面,單擊創(chuàng)建函數(shù)。
在創(chuàng)建函數(shù)頁面,按需選擇創(chuàng)建函數(shù)的方式,配置以下配置項(xiàng),然后單擊創(chuàng)建。
此處以創(chuàng)建事件函數(shù)為例,介紹對(duì)表格存儲(chǔ)中數(shù)據(jù)修改進(jìn)行實(shí)時(shí)計(jì)算的操作。
說明使用函數(shù)計(jì)算時(shí),您可以通過創(chuàng)建事件函數(shù)、Web函數(shù)或任務(wù)函數(shù)實(shí)現(xiàn)對(duì)表格存儲(chǔ)中數(shù)據(jù)的處理。更多信息,請(qǐng)參見函數(shù)創(chuàng)建方式選型。
如果要Tablestore中的數(shù)據(jù)變更自動(dòng)觸發(fā)數(shù)據(jù)處理,請(qǐng)創(chuàng)建事件函數(shù)。具體操作,請(qǐng)參見創(chuàng)建事件函數(shù)。
如果要通過特定HTTP請(qǐng)求觸發(fā)數(shù)據(jù)處理,請(qǐng)創(chuàng)建Web函數(shù)。具體操作,請(qǐng)參見創(chuàng)建Web函數(shù)。
如果要定時(shí)或異步觸發(fā)數(shù)據(jù)處理,請(qǐng)創(chuàng)建任務(wù)函數(shù)。具體操作,請(qǐng)參見創(chuàng)建任務(wù)函數(shù)。
基本設(shè)置:設(shè)置函數(shù)名稱。
函數(shù)代碼:配置函數(shù)的運(yùn)行環(huán)境和代碼相關(guān)信息。
配置項(xiàng)
說明
示例
運(yùn)行環(huán)境
選擇您熟悉的語言,例如Python、Java、PHP、Node.js或自定義容器等。
自定義容器鏡像。
此處選擇Python 3.9。
代碼上傳方式
選擇代碼上傳到函數(shù)計(jì)算的方式。
使用示例代碼:默認(rèn)方式,您可以根據(jù)業(yè)務(wù)需要選擇函數(shù)計(jì)算為您提供的創(chuàng)建函數(shù)的示例代碼。
通過 ZIP 包上傳代碼:選擇函數(shù)代碼ZIP包并上傳。
通過文件夾上傳代碼:選擇包含函數(shù)代碼的文件夾并上傳。
通過 OSS 上傳代碼:選擇上傳函數(shù)代碼的Bucket 名稱和文件名稱。
此處請(qǐng)選擇使用示例代碼后,在示例代碼列表中選擇Hello, world! 示例。
高級(jí)配置:配置函數(shù)的實(shí)例相關(guān)信息和函數(shù)執(zhí)行超時(shí)時(shí)間等。
配置項(xiàng)
說明
示例
規(guī)格方案
根據(jù)您的業(yè)務(wù)情況,選擇或手動(dòng)輸入合理的vCPU規(guī)格和內(nèi)存規(guī)格組合。關(guān)于各資源使用的計(jì)費(fèi)詳情,請(qǐng)參見計(jì)費(fèi)概述。
說明vCPU大小(單位為核)與內(nèi)存大小(單位為GB)的比例必須設(shè)置在1:1到1:4之間。
0.35核,512 MB
臨時(shí)硬盤大小
根據(jù)您的業(yè)務(wù)情況,選擇臨時(shí)存儲(chǔ)文件的硬盤大小。
取值說明如下。
512 MB:默認(rèn)值。不計(jì)費(fèi),函數(shù)計(jì)算為您提供512 MB以內(nèi)的硬盤免費(fèi)使用額度。
10 GB:按9.5 GB進(jìn)行計(jì)費(fèi)。
說明臨時(shí)硬盤中所有目錄可寫,共享臨時(shí)硬盤的空間。
臨時(shí)硬盤大小與底層執(zhí)行函數(shù)的實(shí)例生命周期一致,實(shí)例被系統(tǒng)回收后,硬盤上的數(shù)據(jù)也會(huì)消失。如您需要對(duì)文件進(jìn)行持久化保存,可以選擇掛載NAS或OSS。具體操作,請(qǐng)參見配置NAS文件系統(tǒng)和配置OSS對(duì)象存儲(chǔ)。
512 MB
執(zhí)行超時(shí)時(shí)間
設(shè)置超時(shí)時(shí)間。執(zhí)行超時(shí)時(shí)間默認(rèn)為180秒,最長為86400秒。
180
請(qǐng)求處理程序
設(shè)置請(qǐng)求處理程序,函數(shù)計(jì)算的運(yùn)行時(shí)會(huì)加載并調(diào)用您的請(qǐng)求處理程序處理請(qǐng)求。創(chuàng)建函數(shù)的方式選擇Web函數(shù)時(shí),無需設(shè)置此配置項(xiàng)。
說明代碼上傳方式選擇使用示例代碼時(shí),不需要修改請(qǐng)求處理程序。當(dāng)選擇其他代碼上傳方式時(shí),則需要根據(jù)實(shí)際情況修改請(qǐng)求處理程序,否則函數(shù)執(zhí)行時(shí)會(huì)報(bào)錯(cuò)。
index.handler
時(shí)區(qū)
選擇函數(shù)的時(shí)區(qū)。此處設(shè)置函數(shù)的時(shí)區(qū)后,將自動(dòng)為函數(shù)添加一條環(huán)境變量TZ,其值為您設(shè)置的目標(biāo)時(shí)區(qū)。
UTC
函數(shù)角色
函數(shù)計(jì)算平臺(tái)會(huì)使用這個(gè)RAM角色來生成訪問您的阿里云資源的臨時(shí)密鑰,并傳遞給您的代碼。
重要需授予函數(shù)角色訪問表格存儲(chǔ)服務(wù)的權(quán)限。更多信息,請(qǐng)參見附錄:授予函數(shù)計(jì)算訪問表格存儲(chǔ)的權(quán)限。
AliyunFCDefaultRole
允許訪問 VPC
是否允許函數(shù)訪問VPC內(nèi)資源。更多信息,請(qǐng)參見配置網(wǎng)絡(luò)。
是
專有網(wǎng)絡(luò)
允許訪問 VPC選擇是時(shí)必填。創(chuàng)建新的VPC或在下拉列表中選擇要訪問的VPC ID。
fc.auto.create.vpc.1632317****
交換機(jī)
允許訪問 VPC選擇是時(shí)必填。創(chuàng)建新的交換機(jī)或在下拉列表中選擇交換機(jī)ID。
fc.auto.create.vswitch.vpc-bp1p8248****
安全組
允許訪問 VPC選擇是時(shí)必填。創(chuàng)建新的安全組或在下拉列表中選擇安全組。
fc.auto.create.SecurityGroup.vsw-bp15ftbbbbd****
允許函數(shù)默認(rèn)網(wǎng)卡訪問公網(wǎng)
是否允許函數(shù)可以通過默認(rèn)網(wǎng)卡訪問公網(wǎng)。關(guān)閉后,當(dāng)前服務(wù)中的函數(shù)將無法通過函數(shù)計(jì)算的默認(rèn)網(wǎng)卡訪問公網(wǎng)。
重要使用固定公網(wǎng)IP地址功能時(shí),您必須關(guān)閉允許函數(shù)默認(rèn)網(wǎng)卡訪問公網(wǎng),否則配置的固定公網(wǎng)IP地址不生效。更多信息,請(qǐng)參見配置固定公網(wǎng)IP地址。
是
日志功能
是否啟用阿里云日志服務(wù)。取值說明如下:
啟用:函數(shù)的執(zhí)行日志被持久化保存到日志服務(wù),方便您代碼調(diào)試、故障分析和數(shù)據(jù)分析等。
說明啟用日志功能后,函數(shù)中打印到 stdout 的內(nèi)容就會(huì)被阿里云日志服務(wù)采集到。然后您可以查看函數(shù)的執(zhí)行日志,從而方便您的代碼調(diào)試、故障分析、數(shù)據(jù)分析等操作。
點(diǎn)擊配置日志查看更多詳情。
函數(shù)計(jì)算在后臺(tái)為您創(chuàng)建的日志服務(wù)資源會(huì)產(chǎn)生費(fèi)用,詳情請(qǐng)參見按使用功能計(jì)費(fèi)模式計(jì)費(fèi)項(xiàng)。
禁用:函數(shù)的執(zhí)行日志將無法通過日志服務(wù)存儲(chǔ)和查詢。
啟用
(可選)環(huán)境變量:設(shè)置函數(shù)運(yùn)行環(huán)境中的環(huán)境變量。更多信息,請(qǐng)參見配置環(huán)境變量。
創(chuàng)建Tablestore觸發(fā)器。
在函數(shù)詳情頁簽,選擇配置頁簽,在左側(cè)導(dǎo)航欄,單擊觸發(fā)器,然后單擊創(chuàng)建觸發(fā)器。
在創(chuàng)建觸發(fā)器面板,填寫相關(guān)信息,然后單擊確定。
配置項(xiàng)
操作
本文示例
觸發(fā)器類型
選擇表格存儲(chǔ) Tablestore。
表格存儲(chǔ)Tablestore
名稱
自定義填寫觸發(fā)器名稱。
Tablestore-trigger
版本或別名
默認(rèn)值為LATEST,如果您需要?jiǎng)?chuàng)建其他版本或別名的觸發(fā)器,需先在函數(shù)詳情頁的版本或別名下拉列表選擇該版本或別名。關(guān)于版本和別名的簡(jiǎn)介,請(qǐng)參見版本管理和別名管理。
LATEST
實(shí)例
在列表中選擇已創(chuàng)建的Tablestore實(shí)例。
d00dd8xm****
表格
在列表中選擇已創(chuàng)建的表格。
mytable
角色名稱
選擇AliyunTableStoreStreamNotificationRole。
說明如果您第一次創(chuàng)建該類型的觸發(fā)器,則需要在單擊確定后,在彈出的對(duì)話框中選擇立即授權(quán)。
AliyunTableStoreStreamNotificationRole
創(chuàng)建完成后,在觸發(fā)器名稱列表中顯示已創(chuàng)建的觸發(fā)器。如需對(duì)創(chuàng)建的觸發(fā)器進(jìn)行修改或刪除,具體操作,請(qǐng)參見觸發(fā)器管理。
步驟三:配置函數(shù)的測(cè)試參數(shù)
在函數(shù)詳情頁簽的代碼頁簽,單擊測(cè)試函數(shù)右側(cè)的圖標(biāo),從下拉列表中,選擇配置測(cè)試參數(shù)。
在配置測(cè)試參數(shù)對(duì)話框,選擇創(chuàng)建新測(cè)試事件頁簽,選擇事件模板為Tablestore,并填寫事件名稱和事件內(nèi)容。單擊確定。
說明如果已創(chuàng)建Tablestore測(cè)試事件,您可以在編輯已有測(cè)試事件頁簽,選擇已有事件名稱。
表格存儲(chǔ)觸發(fā)器使用CBOR格式對(duì)增量數(shù)據(jù)進(jìn)行編碼,構(gòu)成函數(shù)計(jì)算的event。具體格式如下所示。
{ "Version": "Sync-v1", "Records": [ { "Type": "PutRow", "Info": { "Timestamp": 1506416585740836 }, "PrimaryKey": [ { "ColumnName": "pk_0", "Value": 1506416585881590900 }, { "ColumnName": "pk_1", "Value": "2017-09-26 17:03:05.8815909 +0800 CST" }, { "ColumnName": "pk_2", "Value": 1506416585741000 } ], "Columns": [ { "Type": "Put", "ColumnName": "attr_0", "Value": "hello_table_store", "Timestamp": 1506416585741 }, { "Type": "Put", "ColumnName": "attr_1", "Value": 1506416585881590900, "Timestamp": 1506416585741 } ] } ] }
event參數(shù)中不同屬性字段的解釋請(qǐng)參見下表。
參數(shù)
描述
Version
Payload版本號(hào)。示例如Sync-v1。類型為String。
Records
數(shù)據(jù)表中的增量數(shù)據(jù)行數(shù)組。包含如下內(nèi)部成員:
Type:數(shù)據(jù)行類型,包含PutRow、UpdateRow和DeleteRow。類型為String。
Info:包含Timestamp內(nèi)部成員。Timestamp表示該行的最后修改UTC時(shí)間。類型為Int64。
PrimaryKey
主鍵列數(shù)組。包含如下內(nèi)部成員:
ColumnName:主鍵列名稱。類型為String。
Value:主鍵列內(nèi)容。類型為formated_value,支持Integer、String和Blob。
Columns
屬性列數(shù)組。包括如下內(nèi)部成員:
Type:屬性列類型,包含Put、DeleteOneVersion和DeleteAllVersions。類型為String。
ColumnName:屬性列名稱。類型為String。
Value:屬性列內(nèi)容。類型為formated_value,支持Integer、Boolean、Double、String和Blob。
Timestamp:屬性列最后修改UTC時(shí)間。類型為Int64。
步驟四:編寫函數(shù)代碼并測(cè)試
完成Tablestore觸發(fā)器創(chuàng)建后,您可以開始編寫函數(shù)代碼并測(cè)試,以驗(yàn)證代碼的正確性。在實(shí)際操作過程中,Tablestore中有數(shù)據(jù)更新時(shí)會(huì)自動(dòng)觸發(fā)函數(shù)執(zhí)行。
在函數(shù)詳情頁簽的代碼頁簽,使用代碼編輯器編寫代碼,然后單擊部署代碼。
本文以Python函數(shù)代碼為例。如果您想使用其他運(yùn)行環(huán)境,更多代碼示例,請(qǐng)參見表格存儲(chǔ)觸發(fā)函數(shù)計(jì)算示例。
import logging import cbor import json def get_attribute_value(record, column): attrs = record[u'Columns'] for x in attrs: if x[u'ColumnName'] == column: return x['Value'] def get_pk_value(record, column): attrs = record[u'PrimaryKey'] for x in attrs: if x['ColumnName'] == column: return x['Value'] def handler(event, context): logger = logging.getLogger() logger.info("Begin to handle event") # records = cbor.loads(event) records = json.loads(event) for record in records['Records']: logger.info("Handle record: %s", record) pk_0 = get_pk_value(record, "pk_0") attr_0 = get_attribute_value(record, "attr_0") return 'OK'
單擊測(cè)試函數(shù)。
執(zhí)行完成后,您可以在函數(shù)代碼頁簽的上方查看執(zhí)行結(jié)果。
修改代碼并部署代碼。
當(dāng)使用
records=json.loads(event)
測(cè)試OK后,修改records
代碼為records = cbor.loads(event)
。單擊部署代碼。
當(dāng)Tablestore中有數(shù)據(jù)寫入時(shí),相關(guān)的函數(shù)邏輯就會(huì)被觸發(fā)。
常見問題
如果您無法在某一地域創(chuàng)建Tablestore觸發(fā)器,請(qǐng)確認(rèn)支持創(chuàng)建Tablestore觸發(fā)器的地域,具體請(qǐng)參見注意事項(xiàng)。
如果您在創(chuàng)建Tablestore觸發(fā)器時(shí)無法找到已經(jīng)創(chuàng)建好的表格存儲(chǔ)數(shù)據(jù)表,請(qǐng)確認(rèn)表格存儲(chǔ)數(shù)據(jù)表與函數(shù)計(jì)算服務(wù)是否處于同一地域。
使用Tablestore觸發(fā)器時(shí),總是會(huì)報(bào)客戶端取消的報(bào)錯(cuò),一般是由于客戶端調(diào)用函數(shù)時(shí)設(shè)置的超時(shí)時(shí)間小于函數(shù)執(zhí)行時(shí)間。建議您將客戶端超時(shí)時(shí)間調(diào)大,具體請(qǐng)參見客戶端斷開連接,報(bào)錯(cuò)Invocation canceled by client怎么辦?。
如果Tablestore數(shù)據(jù)表中有新增的數(shù)據(jù),但是Tablestore觸發(fā)器沒有被觸發(fā),您可以從以下方面進(jìn)行排查。關(guān)于觸發(fā)器不能正常觸發(fā)的詳細(xì)排查方案可參見觸發(fā)器不能正常觸發(fā)函數(shù)執(zhí)行怎么辦?。
確認(rèn)數(shù)據(jù)表是否開啟了Stream功能,具體請(qǐng)參見為數(shù)據(jù)表開啟Stream功能。
確認(rèn)在創(chuàng)建觸發(fā)器時(shí)配置的角色是否正確,您可以使用默認(rèn)的觸發(fā)器角色
AliyunTableStoreStreamNotificationRole
,具體請(qǐng)參見創(chuàng)建Tablestore觸發(fā)器。查看是否有函數(shù)運(yùn)行日志,可以根據(jù)日志確認(rèn)是否是函數(shù)執(zhí)行失敗。函數(shù)執(zhí)行失敗后,會(huì)一直重試直到Tablestore中的日志數(shù)據(jù)過期。
附錄:授予函數(shù)計(jì)算訪問表格存儲(chǔ)的權(quán)限
在使用函數(shù)計(jì)算提供的功能時(shí),函數(shù)計(jì)算需要訪問表格存儲(chǔ)。此時(shí),需要為函數(shù)授予相應(yīng)權(quán)限。如果是較粗粒度的授權(quán),可以選擇函數(shù)計(jì)算系統(tǒng)提供的默認(rèn)服務(wù)角色AliyunFCDefaultRole,如果需要更細(xì)粒度的授權(quán),則需要為函數(shù)授予其他角色及相應(yīng)的權(quán)限策略。
采用系統(tǒng)默認(rèn)角色方式授權(quán)。
為AliyunFCDefaultRole角色授予AliyunOTSFullAccess權(quán)限(管理表格存儲(chǔ)服務(wù)的權(quán)限)。具體操作,請(qǐng)參見為RAM角色授權(quán)。
說明AliyunFCDefaultRole是函數(shù)計(jì)算的默認(rèn)服務(wù)角色,但不包含表格存儲(chǔ)的權(quán)限。
如果您是初次使用該角色,您需要為該角色添加表格存儲(chǔ)權(quán)限。
如果您已為該角色添加表格存儲(chǔ)權(quán)限,則無需執(zhí)行此操作。
采用自定義角色方式授權(quán)。
具體操作,請(qǐng)參見示例:授予函數(shù)計(jì)算訪問OSS的權(quán)限。