腳本開發 / 內置變量
為了方便腳本在運行時獲取相關運行狀態的信息,DataFlux Func 在腳本上下文中直接內置了一些可以直接使用的變量。
| 內置變量 | 類型 | 適用範圍 | 説明 | 示例值 |
|---|---|---|---|---|
_DFF_IMAGE_INFO |
dict | 全部 | 當前鏡像信息 | 見下文 |
_DFF_TRACE_ID |
str | 全部 | Trace ID Func 內部的 Trace |
"TRACE-14E6D8D6-1F1A-4A5A-8280-854F6DD8CDB0" |
_DFF_TASK_ID |
str | 全部 | 任務 ID | "task-2UHeFYPdb6Q7" |
_DFF_ROOT_TASK_ID |
str | 全部 | 主任務 ID 對於主任務本身,固定為 "ROOT |
"task-2UHeFYPdb6Q7" |
_DFF_SCRIPT_SET_ID |
str | 全部 | 腳本集 ID | "demo" |
_DFF_SCRIPT_SET_NAME |
str | 全部 | 腳本集名稱 與 _DFF_SCRIPT_SET_ID 相同 |
"demo" |
_DFF_SCRIPT_SET_TITLE |
str | 全部 | 腳本集標題 | "示例" |
_DFF_SCRIPT_ID |
str | 全部 | 腳本 ID | "demo__basic" |
_DFF_SCRIPT_NAME |
str | 全部 | 腳本名稱 即不含腳本集 ID 的部分 |
"basic" |
_DFF_SCRIPT_TITLE |
str | 全部 | 腳本標題 | "基礎" |
_DFF_FUNC_ID |
str | 全部 | 函數 ID | "demo__basic.hello_world" |
_DFF_FUNC_NAME |
str | 全部 | 函數名 即不含腳本 ID 的部分 |
"hello_world" |
_DFF_FUNC_TITLE |
str | 全部 | 函數標題 | "我的函數" |
_DFF_FUNC_CHAIN |
list | 全部 | 函數調用鏈 | [ "demo__basic.run", "demo__basic.hello_world" ] |
_DFF_FUNC_CALL_KWARGS |
dict | 全部 | 函數調用參數 | {"x": 1, "y": 2} |
_DFF_ORIGIN |
str | 全部 | 任務來源 | "funcAPI" |
_DFF_ORIGIN_ID |
str | 全部 | 來源 ID | "fapi-tDGC12Gdc5H6" |
_DFF_TRIGGER_TIME |
int | 全部 | 計劃啓動時間(秒) | 1625651909 |
_DFF_TRIGGER_TIME_MS |
int | 全部 | 計劃啓動時間(毫秒) | 1625651909582 |
_DFF_START_TIME |
int | 全部 | 實際啓動時間(秒) | 1625651910 |
_DFF_START_TIME_MS |
int | 全部 | 實際啓動時間(毫秒) | 1625651910630 |
_DFF_QUEUE |
int | 全部 | 執行隊列 | 2 |
_DFF_CRON_EXPR |
str | 定時任務 | Crontab 表達式 | * * * * * |
_DFF_HTTP_REQUEST |
dict | 函數 API 函數頁面 |
接口調用時請求體 | 見下文 |
_DFF_TRIGGER_TIME 和 _DFF_START_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_IMAGE_INFO 數據結構
_DFF_IMAGE_INFO 內容為 DataFlux Func 鏡像信息,包含了版本號等信息。
| 字段 | 説明 |
|---|---|
EDITION |
版本,取值為 "original", "GSE", "TSE" |
VERSION |
版本號,如:"1.2.3" |
ARCHITECTURE |
架構,取值為 "x86_64", "aarch64" |
RELEASE_TIMESTAMP |
發佈時間(UNIX 時間戳,秒) |
| _DFF_IMAGE_INFO 內容示例 | |
|---|---|
1 2 3 4 5 6 | |
_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 | |