創(chuàng)建Python函數(shù)
本文將為您介紹如何創(chuàng)建Python函數(shù)。
前提條件
已創(chuàng)建完成業(yè)務(wù)流程,詳情請參見創(chuàng)建并管理業(yè)務(wù)流程。
背景信息
您可以在數(shù)據(jù)服務(wù)中創(chuàng)建函數(shù)、測試函數(shù)、發(fā)布函數(shù),發(fā)布后的函數(shù)可被進一步關(guān)聯(lián)至API,作為API的過濾器,對API的請求參數(shù)或返回結(jié)果進行加工處理,從而實現(xiàn)API的復(fù)雜查詢需求,靈活適配各類業(yè)務(wù)場景。
使用限制
您需要購買DataWorks專業(yè)版及以上版本,才可以使用Python函數(shù)及過濾器功能。
Python函數(shù)需要運行在公共數(shù)據(jù)服務(wù)資源組中。
Python函數(shù)正在改造中,暫不支持新建、克隆和發(fā)布新的Python函數(shù)。如需使用函數(shù)功能,建議您使用Aviator函數(shù)。詳情請參見創(chuàng)建Aviator函數(shù)。
當(dāng)使用函數(shù)作為API過濾器時,前置過濾器和后置過濾器的函數(shù)類型需要保持一致。即:均選擇Python函數(shù)類型。暫不支持對同一API的前置和后置過濾器選擇不同的函數(shù)類型。
Python函數(shù)作為過濾器的使用限制如下:
過濾器僅支持Python 3.0的語法。
過濾器僅支持
import json,time,random,pickle,re,math
。過濾器限定函數(shù)名
def handler(event,context):
。
函數(shù)結(jié)構(gòu)說明
# -*- coding: utf-8 -*-
# event (str) : in filter it is the API result, in other cases, it is your param
# context : some environment information, temporarily useless
# import module limit: json,time,random,pickle,re,math
# do not modify function name
import json
def handler(event,context):
# load str to json object
obj = json.loads(event)
# add your code here
# end add
return obj
您可以基于該函數(shù)進行修改,并根據(jù)自身需求修改函數(shù)的入?yún)⒚Q。
參數(shù)1[context]:字符串類型,包含API執(zhí)行的上下文環(huán)境,目前為空,暫未啟用。
參數(shù)2[event]:字符串類型,包含API的請求參數(shù),或者是上一個過濾器處理后的結(jié)果。
系統(tǒng)會將API請求參數(shù)或上個過濾器的輸出結(jié)果,從key-value map轉(zhuǎn)換為JSON形式,并使用該JSON對event參數(shù)進行傳參,且JSON中的value僅支持字符串類型。
前置過濾器的輸出結(jié)果為key-value map。該輸出結(jié)果將作為SQL語句執(zhí)行入?yún)ⅲ虼藘H支持輸出深度為1的key-value map。
進入數(shù)據(jù)服務(wù)頁面
登錄DataWorks控制臺,切換至目標(biāo)地域后,單擊左側(cè)導(dǎo)航欄的 ,在下拉框中選擇對應(yīng)工作空間后單擊進入數(shù)據(jù)服務(wù)。
創(chuàng)建函數(shù)
在服務(wù)開發(fā)頁面,鼠標(biāo)懸停至圖標(biāo),單擊 。
您也可以找到相應(yīng)的業(yè)務(wù)流程,右鍵單擊函數(shù),選擇
。在新建Python函數(shù)對話框中,配置各項參數(shù)。
參數(shù)
描述
函數(shù)名稱
自定義函數(shù)的名稱,不得超過256個字符。
函數(shù)模板
僅支持Python3 Standard v1模板。
運行環(huán)境
僅支持Python 3.0。
函數(shù)描述
對函數(shù)進行簡單描述,不得超過512個字符。
目標(biāo)文件夾
存放函數(shù)的目錄。
單擊確認(rèn)。
在函數(shù)的編輯頁面,配置函數(shù)。
在編輯代碼區(qū)域,輸入函數(shù)的代碼。
在環(huán)境配置區(qū)域,設(shè)置內(nèi)存和超時時間。
單擊工具欄中的圖標(biāo)。
后續(xù)步驟
創(chuàng)建函數(shù)后您可以對函數(shù)進行測試和發(fā)布。詳情請參見測試函數(shù)、發(fā)布函數(shù)。
發(fā)布后的函數(shù)可以進一步關(guān)聯(lián)至API,作為API的前置和后置過濾器,對請求參數(shù)和返回結(jié)果進行加工處理,詳情請參見:使用函數(shù)作為API過濾器。