本文將為您介紹如何建立Python函數。
前提條件
已建立完成商務程序,詳情請參見建立並管理商務程序。
背景資訊
您可以在資料服務中建立函數、測試函數、發布函數,發布後的函數可被進一步關聯至API,作為API的過濾器,對API的請求參數或返回結果進行加工處理,從而實現API的複雜查詢需求,靈活適配各類業務情境。
使用限制
您需要購買DataWorks專業版及以上版本,才可以使用Python函數及過濾器功能。
Python函數需要運行在公用資料服務資源群組中。
Python函數正在改造中,暫不支援建立、複製和發布新的Python函數。如需使用函數功能,建議您使用Aviator函數。詳情請參見建立Aviator函數。
當使用函數作為API過濾器時,前置過濾器和後置過濾器的函數類型需要保持一致。即:均選擇Python函數類型。暫不支援對同一API的前置和後置過濾器選擇不同的函數類型。
Python函數作為過濾器的使用限制如下:
過濾器僅支援Python 3.0的文法。
過濾器僅支援
import json,time,random,pickle,re,math
。過濾器限定函數名
def handler(event,context):
。
函數結構說明
# -*- 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
您可以基於該函數進行修改,並根據自身需求修改函數的入參名稱。
參數1[context]:字串類型,包含API執行的上下文環境,目前為空白,暫未啟用。
參數2[event]:字串類型,包含API的請求參數,或者是上一個過濾器處理後的結果。
系統會將API請求參數或上個過濾器的輸出結果,從key-value map轉換為JSON形式,並使用該JSON對event參數進行傳參,且JSON中的value僅支援字串類型。
前置過濾器的輸出結果為key-value map。該輸出結果將作為SQL語句執行入參,因此僅支援輸出深度為1的key-value map。
進入資料服務頁面
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的資料服務,在下拉框中選擇對應工作空間後單擊進入資料服務。
建立函數
在服務開發頁面,滑鼠移至上方至表徵圖,單擊 。
您也可以找到相應的商務程序,按右鍵函數,選擇
。在建立Python函數對話方塊中,配置各項參數。
參數
描述
函數名稱
自訂函數的名稱,不得超過256個字元。
函數模板
僅支援Python3 Standard v1模板。
運行環境
僅支援Python 3.0。
函數描述
對函數進行簡單描述,不得超過512個字元。
目標檔案夾
存放函數的目錄。
單擊確認。
在函數的編輯頁面,配置函數。
在編輯代碼地區,輸入函數的代碼。
在環境配置地區,設定記憶體和逾時時間。
單擊工具列中的表徵圖。
後續步驟
發布後的函數可以進一步關聯至API,作為API的前置和後置過濾器,對請求參數和返回結果進行加工處理,詳情請參見:使用函數作為API過濾器。