跳到主要内容
版本:Next

CLI 参考

arkflow 二进制是一个单一可执行文件:它从 YAML 配置运行流与作业,并提供用于发现组件注册表的命令。

arkflow [OPTIONS] [COMMAND]

运行引擎​

选项描述
-c, --config <FILE>YAML 配置文件路径。除发现类子命令外必填。
-v, --validate校验配置后退出,不启动引擎。
--version打印版本并退出。
# 运行配置中定义的流与作业
./target/release/arkflow --config config.yaml

# 深度校验一份配置:解析、流 id、声明的作业图、
# 重复 id、算子引用以及配置规则
./target/release/arkflow --config config.yaml --validate

--validate 不止于反序列化:它检查流 id 的唯一性,校验每一条声明的作业规格(图结构与算子引用),并运行引擎的配置规则检查。校验失败会打印 Invalid configuration: ... 并以非零状态退出,因此该标志适用于 CI 流水线与准入钩子。

components list​

按类别分组列出所有已注册组件。

arkflow components list [--kind KIND] [--format FORMAT]
选项描述
-k, --kind <KIND>按组件类别过滤:input、output、processor、buffer、codec、temporary。
-f, --format <FORMAT>text(默认,对齐列)或 json(机器可读的注册表导出)。
$ arkflow components list --kind codec
codec:
json JSON codec for parsing and serializing message payloads
protobuf Protobuf codec using a compiled .proto descriptor
...

json 格式与生成组件清单所用的注册表导出完全相同,因此脚本与文档永远不会和二进制不一致。

components show​

打印单个组件的配置 schema。

arkflow components show <KIND> <NAME> [--format FORMAT]
参数描述
<KIND>组件类别(必填)。
<NAME>已注册组件的类型名(必填)。
-f, --format <FORMAT>text(默认)或 json。
$ arkflow components show input kafka
kafka: Kafka input component for consuming messages from Kafka topics
kind: input
config_optional: no

Example:
{ ... pretty-printed config example ... }

Config schema:
{ ... JSON Schema for the component config ... }

未知名称会失败并列出合法备选项,例如 Unknown input type: kafaka. Available input types: file, generate, http, kafka, ...。

schema​

打印整个引擎配置的 JSON Schema(draft 2020-12)。把它交给你的编辑器即可获得 YAML 自动补全与悬停文档——参见 IDE 自动补全。

arkflow schema > arkflow.schema.json

退出行为​

调用方式行为
components ...、schema打印结果并立即退出;不读取任何配置文件。
--validate校验配置,记录日志 The config is validated.,随后退出且不启动引擎。
--config <FILE>(默认)校验配置,随后启动引擎并阻塞直至关闭。
缺少 --config 且无子命令错误:missing --config <FILE> (or run a subcommand: components, schema)。

arkflow-server​

arkflow-server 二进制运行控制面 Hub。它没有命令行标志;全部启动配置来自环境变量,外加用于存储 schema 迁移的单一 migrate 子命令。

启动环境变量​

环境变量默认值说明
ARKFLOW_HUB_ADDRESS127.0.0.1:8080Hub API 监听地址。
ARKFLOW_OPERATOR_TOKEN—供人工/管理员访问 API 的 operator token。支持 role|token 凭据格式;参见 Hub 认证。
ARKFLOW_NODE_TOKEN—Agent 向 Hub 认证使用的共享 token。
ARKFLOW_HUB_INSECURE_LOCAL关设为 1/true/yes 以放宽校验,仅限本地开发。
ARKFLOW_HUB_STORAGE—存储后端描述:SQLite 路径或 PostgreSQL URL。启用 HA 时必须设置。
ARKFLOW_HUB_TLS_CERT / ARKFLOW_HUB_TLS_KEY—Hub 监听器的 TLS 证书与私钥路径。
ARKFLOW_HUB_HA_ENABLED关设为 1/true/yes 启用基于租约的 HA。要求设置 ARKFLOW_HUB_STORAGE;多实例 HA 使用 PostgreSQL URL(SQLite 路径仅记录一条仅供开发的警告)。
ARKFLOW_HUB_HA_LEASE_TTL_MS15000租约 TTL(毫秒);低于 1000 会被拒绝。
ARKFLOW_HUB_HA_HOLDER_ID—显式租约持有者身份;缺省时由主机名、PID 与启动时间自动生成。
ARKFLOW_HUB_HA_ADVERTISE_URL—带主机的绝对 http(s):// URL,Agent 通过它访问该 Hub 实例(多 Hub 发现)。

migrate 子命令​

将 Hub 存储数据库从 SQLite 迁移到 PostgreSQL——把单实例 Hub(SQLite)迁移到多实例 HA(PostgreSQL)时走这条路。

arkflow-server migrate --from sqlite:<path> --to postgres://<url>

成功时打印逐表行数报告(<table>: <rows> rows ... migration complete: <n> rows total)并以 0 退出。

退出码行为
0迁移完成。
2用法错误:缺少 --from/--to,或 --from 不以 sqlite: 开头,或 --to 不以 postgres:///postgresql:// 开头。
非零迁移失败;错误打印到 stderr。

相关页面​