指令碼開發 / 內建變數
為了方便指令碼在執行時獲取相關執行狀態的資訊,DataFlux Func 在指令碼上下文中直接內建了一些可以直接使用的變數。
內建變數 | 型別 | 適用範圍 | 說明 | 示例值 |
---|---|---|---|---|
_DFF_SCRIPT_SET_ID |
str | 全部 | 指令碼集 ID | "demo" |
_DFF_SCRIPT_ID |
str | 全部 | 指令碼 ID | "demo__basic" |
_DFF_FUNC_ID |
str | 全部 | 函式 ID | "demo__basic.hello_world" |
_DFF_FUNC_NAME |
str | 全部 | 函式名 | "hello_world" |
_DFF_START_TIME |
int | 全部 | 實際啟動時間(秒) | 1625651910 |
_DFF_START_TIME_MS |
int | 全部 | 實際啟動時間(毫秒) | 1625651910630 |
_DFF_TRIGGER_TIME |
int | 全部 | 計劃啟動時間(秒) | 1625651909 |
_DFF_TRIGGER_TIME_MS |
int | 全部 | 計劃啟動時間(毫秒) | 1625651909582 |
_DFF_CRON_EXPR |
str | 定時任務 | Crontab 表示式 | * * * * * |
_DFF_HTTP_REQUEST |
dict | 函式 API | 介面呼叫時請求體 | 見下文 |
_DFF_START_TIME
和 _DFF_TRIGGER_TIME
區別
_DFF_START_TIME
指的是函式實際啟動的時間,相當於在函式入口處執行的 int(time.time())
,會因為佇列擁堵等因素延後。
而 _DFF_TRIGGER_TIME
指的是函式觸發時間,不會因為佇列擁堵而改變,可以認為是「計劃啟動的時間」,取值如下:
函式呼叫方式 | 取值 |
---|---|
UI 執行函式 | 後端 API 服務接收到 HTTP 請求的時間 |
函式 API | 後端 API 服務接收到 HTTP 請求的時間 |
定時任務 | Crontab 表示式所對應的整點時間 |
當使用「定時任務」按照固定時間間隔獲取時序資料時,應當以 _DFF_TRIGGER_TIME 和 _DFF_TRIGGER_TIME_MS 為基準,不要自行在程式碼中使用 time.time() 獲取當前時間
_DFF_HTTP_REQUEST
資料結構
_DFF_HTTP_REQUEST
內容為請求體詳情。
如有以下請求:
請求示例 | |
---|---|
1 2 3 4 5 |
|
那麼,_DFF_HTTP_REQUEST
值如下:
_DFF_HTTP_REQUEST 內容示例 | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
不同版本的 DataFlux Func 中 _DFF_HTTP_REQUEST 包含的欄位可能略有不同,請以實際為準
headers 欄位型別是 IgnoreCaseDict 型別資料。IgnoreCaseDict 繼承 dict,用法基本相同但不區分鍵名的大小寫,如以下幾行程式碼都能獲得相同的值
Python | |
---|---|
1 2 3 |
|