脚本开发 / 内置变量
为了方便脚本在运行时获取相关运行状态的信息,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 | |