腳本開發 / 內置變量
為了方便腳本在運行時獲取相關運行狀態的信息,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 |
|