创建任务
使用 InfluxDB 用户界面 (UI)、influx
命令行界面 (CLI) 或 /api/v2
API 创建任务。
在创建任务之前,请查看 编写任务的基礎。
在 InfluxDB UI 中创建任务
InfluxDB UI 提供了多种创建任务的方式
从数据探索器创建任务
在左侧导航菜单中,选择 数据探索器。
构建查询,然后在右上角单击 另存为。
选择 任务 标题。
指定任务选项。有关每个选项的详细信息,请参阅 任务选项。
单击 保存为任务。
在任务 UI 中创建任务
在左侧导航菜单中,选择 任务。
在右上角单击 创建任务。
在左侧面板中,指定任务选项。有关每个选项的详细信息,请参阅 任务选项。
在右侧面板中,输入您的任务脚本。
省略任务分配选项
在 InfluxDB 任务 UI 中创建新任务时,请勿在代码编辑器中输入任何内容。当您保存任务时,任务 UI 将使用您在“任务选项”表单中指定的 任务选项 自动填充
option task = {task_options}
。当您编辑已保存的任务时,您将看到注入的
option task = {task_options}
。在右上角单击 保存。
导入任务
在左侧导航菜单中,选择 任务。
在右上角单击 创建任务。
在左侧面板中,指定任务选项。有关每个选项的详细信息,请参阅 任务选项。
将原始 Flux 任务粘贴到任务选项字段右侧的代码编辑器中。
在右上角单击 保存。
从模板创建任务
在左侧导航菜单中,选择 设置 > 模板。
找到您要使用的模板,然后单击其 资源 列表以展开列表。
在 资源 列表中,单击您要使用的任务。
克隆任务
在左侧导航菜单中,选择 任务。
找到您想要克隆的任务,然后点击任务名称右侧最远的 图标。
点击 克隆。
使用 influx CLI 创建任务
使用 influx task create
命令创建新任务。它接受文件路径或原始 Flux。
使用文件创建任务
# Syntax
influx task create --org <org-name> -f </path/to/task-script>
# Example
influx task create --org my-org -f /tasks/cq-mean-1h.flux
使用原始 Flux 创建任务
influx task create --org my-org - # <return> to open stdin pipe
option task = {
name: "task-name",
every: 6h
}
# ... Task script ...
# Linux & macOS: <ctrl-d> to close the pipe and submit the command
# Windows: <enter>, then <ctrl-d>, then <enter> to close the pipe and submit the command
使用 InfluxDB API 创建任务
InfluxDB Cloud 任务可以运行一个 可调用的脚本 或存储在任务中的原始 Flux。
创建引用脚本的任务
使用 InfluxDB Cloud 可调用脚本,您可以像 API 端点一样管理、重用和调用脚本。您可以使用任务传递脚本参数和安排运行。
使用 /api/v2/tasks
InfluxDB API 端点 创建一个引用脚本 ID 的任务。
POST https://127.0.0.1:8086/api/v2/tasks/
在您的 API 请求中提供以下内容
请求头
- Content-Type: application/json
- Authorization: Token
INFLUX_API_TOKEN
请求体
包含以下字段的 JSON 对象
- cron 或 every: 任务计划
- name: 任务名称
- scriptID: 可调用脚本 ID
curl --request POST 'https://cloud2.influxdata.com/api/v2/tasks' \
--header 'Content-Type: application/json' \
--header 'Authorization: Token INFLUX_API_TOKEN' \
"cron": "0 * * * *",
"name": "downsample cpu",
"scriptID": "085a2960eaa20000",
"description": "This task downsamples CPU data every hour"
}'
要创建在调用脚本时传递参数的任务,请将 scriptParameters
属性传递到请求体中。以下示例代码创建了一个带有参数的脚本,然后创建了一个每天运行新脚本的任务
SCRIPT_ID=$(
curl https://cloud2.influxdata.com/api/v2/scripts \
--header "Authorization: Token INFLUX_API_TOKEN" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-binary @- << EOF | jq -r '.id'
{
"name": "filter-and-group19",
"description": "Returns filtered and grouped points from a bucket.",
"script": "from(bucket: params.bucket)\
|> range(start: duration(v: params.rangeStart))\
|> filter(fn: (r) => r._field == params.filterField)\
|> group(columns: [params.groupColumn])",
"language": "flux"
}
EOF
)
echo $SCRIPT_ID
curl https://cloud2.influxdata.com/api/v2/tasks \
--header "Content-type: application/json" \
--header "Authorization: Token INFLUX_API_TOKEN" \
--data @- << EOF
{
"name": "30-day-avg-temp",
"description": "IoT Center 30d temperature average.",
"every": "1d",
"scriptID": "${SCRIPT_ID}",
"scriptParameters":
{
"rangeStart": "-30d",
"bucket": "air_sensor",
"filterField": "temperature",
"groupColumn": "_time"
}
}
EOF
将 INFLUX_API_TOKEN
替换为您的 InfluxDB API 令牌。
创建包含 Flux 脚本的任务
使用 /api/v2/tasks
InfluxDB API 端点 创建一个包含具有任务选项的 Flux 脚本的任务。
POST https://cloud2.influxdata.com/api/v2/tasks/
在您的 API 请求中提供以下内容
请求头
- Content-Type: application/json
- Authorization: Token
INFLUX_API_TOKEN
请求体
包含以下字段的 JSON 对象
- flux: 包含
选项
和查询的原始 Flux 任务字符串。 - status: 任务状态(“active” 或 “inactive”)
- description: 任务描述
curl --request POST 'https://cloud2.influxdata.com/api/v2/tasks' \
--header 'Content-Type: application/json' \
--header 'Authorization: Token INFLUX_API_TOKEN' \
--data-binary @- << EOF
{
"flux": "option task = {name: \"CPU Total 1 Hour New\", every: 1h}\
from(bucket: \"telegraf\")
|> range(start: -1h)
|> filter(fn: (r) => (r._measurement == \"cpu\"))
|> filter(fn: (r) =>\n\t\t(r._field == \"usage_system\"))
|> filter(fn: (r) => (r.cpu == \"cpu-total\"))
|> aggregateWindow(every: 1h, fn: max)
|> to(bucket: \"cpu_usage_user_total_1h\", org: \"INFLUX_ORG\")",
"orgID": "INFLUX_ORG_ID",
"status": "active",
"description": "This task downsamples CPU data every hour"
}
EOF
替换以下内容
INFLUX_API_TOKEN
: 您的 InfluxDB API 令牌INFLUX_ORG
: 您的 InfluxDB 组织名称INFLUX_ORG_ID
: 您的 InfluxDB 组织 ID
这个页面有帮助吗?
感谢您的反馈!