全部產品
Search
文件中心

DataWorks:建立Python函數

更新時間:Jun 19, 2024

本文將為您介紹如何建立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控制台,切換至目標地區後,單擊左側導覽列的資料服務,在下拉框中選擇對應工作空間後單擊進入資料服務

建立函數

  1. 服務開發頁面,滑鼠移至上方至image.png表徵圖,單擊建立函數 > 建立Python函數

    您也可以找到相應的商務程序,按右鍵函數,選擇建立 > 建立Python函數

  2. 建立Python函數對話方塊中,配置各項參數。

    PYthon

    參數

    描述

    函數名稱

    自訂函數的名稱,不得超過256個字元。

    函數模板

    僅支援Python3 Standard v1模板。

    運行環境

    僅支援Python 3.0。

    函數描述

    對函數進行簡單描述,不得超過512個字元。

    目標檔案夾

    存放函數的目錄。

  3. 單擊確認

  4. 在函數的編輯頁面,配置函數。

    1. 編輯代碼地區,輸入函數的代碼。

    2. 環境配置地區,設定記憶體逾時時間

  5. 單擊工具列中的儲存表徵圖。

後續步驟

  • 建立函數後您可以對函數進行測試和發布。詳情請參見測試函數發布函數

  • 發布後的函數可以進一步關聯至API,作為API的前置和後置過濾器,對請求參數和返回結果進行加工處理,詳情請參見:使用函數作為API過濾器