全部產品
Search
文件中心

DataWorks:建立Aviator函數

更新時間:Nov 14, 2024

本文將為您介紹如何建立Aviator函數。

前提條件

背景資訊

您可以在資料服務中建立函數、測試函數、發布函數,發布後的函數可被進一步關聯至API,作為API的過濾器,對API的請求參數或返回結果進行加工處理,從而實現API的複雜查詢需求,靈活適配各類業務情境。常見情境的程式碼範例請參見:使用Aviator函數作為過濾器的最佳實務

使用限制

  • Aviator函數需要運行在獨享資料服務資源群組中。

  • 當使用函數作為API過濾器時,前置過濾器和後置過濾器的函數類型需要保持一致,即:均選擇Aviator函數類型或Python函數類型。暫不支援對同一API的前置和後置過濾器選擇不同的函數類型。

注意事項

基於安全和效能等因素的評估,Aviator函數需要運行在獨享資料服務資源群組中。因此:

  • 當您編輯、測試函數時,需要對函數綁定獨享資料服務資源群組。詳情請參見管理函數

  • 當您在API開發時啟用了過濾器並關聯了目標函數,需要對API綁定獨享資料服務資源群組。詳情請參見通過嚮導模式產生API

函數結構說明

對於Aviator函數,系統內建的模板函數如下。Aviator函數文法參考請參見Aviator函數文法

## --- AviatorScript ---
## $0: the default name of the input param.
## Expressions must be separated by the semicolon ";".

## Example 1:
## $0.a: Get the attribute "a" from the input param "$0".
## $0.b[index]: Get the index of the array "b" from the input param "$0". The index cannot be an expression or a variable.

## Example 2:
## Input: {"keyA":[1,2],"keyB":"value"}
## Function: $0.keyA[0]=3; $0.keyB="new_value"; return $0;
## Output: {"keyA":[3,2],"keyB":"new_value"}

return $0;

您可以基於該函數進行修改。

  • Aviator函數的預設入參名稱是$0,且不可更改,您可以通過$0來擷取函數的整體輸入。

  • 函數的輸入內容需要按照JSON形式。在資料服務中,函數的作用是作為API過濾器來處理請求參數和返回結果,並且請求參數的定義形式是單層JSON結構(深度為1),返回結果的定義形式是多層JSON結構(深度為N),因此函數的輸入內容也需要按照JSON形式,即:$0代表著一段JSON形式的資料內容。

  • 當函數被作為API的前置過濾器時,系統會將API請求參數或上個函數的輸出結果,從key-value map轉換為JSON形式,並使用該JSON對$0參數進行傳參,且JSON中的value僅支援字串類型。

  • 當函數被作為API的前置過濾器時,函數的輸出結果為key-value map。該輸出結果將作為SQL語句執行入參,因此僅支援輸出深度為1的key-value map

進入資料服務頁面

登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的資料開發與治理 > 資料服務,在下拉框中選擇對應工作空間後單擊進入資料服務

建立函數

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

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

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

    image.png

    參數

    描述

    函數名稱

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

    函數模板

    僅支援AviatorScript Standard v1

    函數描述

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

    目標檔案夾

    選擇函數存放的目錄。

    說明

    請選擇具體的商務程序名稱、檔案夾名稱或函數類目。如果尚無商務程序,請先建立一個商務程序。

  3. 單擊確定

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

  5. 佈建服務資源群組。

    函數

    1. 在API編輯頁面的右側導覽列中,單擊服務資源群組,您可以在資源群組類型地區配置API調用時使用的資源群組類型。

      當前僅支援選擇獨享服務資源群組。

      說明

      若在列表中無法選中目標資源群組名稱,請進入DataWorks控制台通過“修改歸屬工作空間”將資源群組與工作空間進行綁定。您也可以單擊新購獨享服務資源群組,購買獨享服務資源群組,詳情請參見新增和使用獨享資料服務資源群組

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

      逾時時間配置建議:獨享資料服務資源群組不超過100ms。

  6. 單擊工具列中的儲存表徵圖,完成函數建立。

建立完成後,您可以測試函數並將函數發布,便於後續使用函數作為API的前置過濾器或後置過濾器。

後續步驟

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

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