指令碼開發 / 內建變數
為了方便指令碼在執行時獲取相關執行狀態的資訊,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 | |