脚本开发 / 内置变量 _DFF_XXX
为了方便脚本在运行时获取相关运行状态的信息,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_CRONTAB |
str | 自动触发配置 | Crontab 表达式 | * * * * * |
_DFF_HTTP_REQUEST |
dict | 授权链接、批处理 | 接口调用时请求体 | 见下文 |
_DFF_START_TIME 和 _DFF_TRIGGER_TIME 区别
_DFF_START_TIME
指的是函数实际启动的时间,相当于在函数入口处执行的int(time.time())
,会因为队列拥堵等因素延后。
而_DFF_TRIGGER_TIME
指的是函数触发时间,不会因为队列拥堵而改变,可以认为是「计划启动的时间」,取值如下:
函数调用方式 | 取值 |
---|---|
UI 执行函数 | 后端 API 服务接收到 HTTP 请求的时间 |
授权链接 | 后端 API 服务接收到 HTTP 请求的时间 |
自动触发配置 | Crontab 表达式所对应的整点时间 |
批处理 | 后端 API 服务接收到 HTTP 请求的时间 |
当使用自动触发配置按照固定时间间隔获取时序数据时,应当以 _DFF_TRIGGER_TIME 和 _DFF_TRIGGER_TIME_MS 为基准,不要自行在代码中使用 time.time() 获取当前时间
_DFF_HTTP_REQUEST 数据结构
_DFF_HTTP_REQUEST
内容为请求体详情。
如有一下请求:
Bash | |
---|---|
1 2 3 4 5 |
|
那么,_DFF_HTTP_REQUEST
值如下:
JSON | |
---|---|
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 |
|