跳到主要内容

CLI 参考

aisix 二进制文件用于运行 AISIX 网关,并提供处理开源 AISIX 网关配置的命令。使用 validate 检查声明式 resources.yaml 文件,使用 export 将现有 etcd 存储中的资源转换为该格式。这两个命令都不会启动网关监听器。

Usage: aisix --config <CONFIG>
aisix <COMMAND>
命令用途
aisix --config <CONFIG>使用指定的启动配置文件启动网关。请参阅启动配置参考
aisix validate --resources <FILE>在不启动网关的情况下检查资源文件。
aisix export --etcd <ENDPOINT> [-o <FILE>]将开源 AISIX 网关 etcd 存储中的资源导出为可加载的资源文件。

运行官方容器镜像时,请直接调用二进制文件:

docker run --rm --entrypoint /usr/local/bin/aisix ghcr.io/api7/aisix:latest --help

验证资源文件

aisix validate 会运行网关加载资源文件时使用的相同流水线——读取、${VAR} 插值、名称引用解析、规范 Schema 验证和交叉引用检查——但不会启动任何监听器。可以在启动或重新加载前将其用作预检查,也可以将其用作配置变更的 CI 门禁。

aisix validate --resources resources.yaml
选项必填说明
--resources <FILE>要验证的资源文件路径。

文件中的 ${VAR} 引用会根据 validate 进程自身的环境进行解析。请使用网关将收到的相同变量运行该命令,否则验证会因无法解析引用而失败。

退出码

退出码含义
0文件加载成功,并将摘要打印到标准输出。
非零文件加载失败,并将完整的聚合错误报告打印到标准错误。

成功时:

OK: resources.yaml loaded 3 resource(s)

失败时,会统一报告整个文件中的所有问题,并指出资源类型、条目和字段:

resources file resources.yaml: 3 error(s):
- provider_keys[0]: field `api_key`: environment variable `OPENAI_API_KEY` is unset or empty
- models[0] ("gpt-4o-mini"): `provider_key` references unknown provider key "openai-main" (no provider_keys are defined in this file)
- api_keys[0] ("quickstart-caller"): `key_env` environment variable `CALLER_API_KEY` is unset or empty

使用容器镜像进行验证

如果本地没有二进制文件,请通过 Docker 运行相同检查。挂载文件并传入该文件引用的环境变量:

docker run --rm \
-v "$(pwd)/resources.yaml:/etc/aisix/resources.yaml:ro" \
-e OPENAI_API_KEY \
-e CALLER_API_KEY \
--entrypoint /usr/local/bin/aisix \
ghcr.io/api7/aisix:latest \
validate --resources /etc/aisix/resources.yaml

从 etcd 导出资源

aisix export 读取开源 AISIX 网关 etcd 前缀下的资源,并将其写入声明式资源文件。可以使用该命令将以 etcd 为后端的网关迁移到资源文件,包括资源由早期版本的网关 Admin API 创建的网关。该命令还可以为网关能够加载的资源创建便于审查的备份。

aisix export \
--etcd "http://127.0.0.1:2379" \
--output resources.yaml
选项必填说明
--etcd <ENDPOINT>要读取的 etcd 端点。多个端点可以重复提供该选项,或使用逗号分隔的列表。
--prefix <PREFIX>包含资源的 Key 前缀。默认为 /aisix,即网关默认的 etcd.prefix
-o--output <FILE>将 YAML 文档写入文件,而不是标准输出。在 Unix 上,AISIX 会以 0600 模式创建或重置该文件。
--reveal-secrets内联写出存储的凭证,不使用环境变量占位符替换。生成的输出包含有效机密。

导出使用与运行中网关相同的 etcd 解码路径。它会把资源引用转换回显示名称,并省略生成的 ID,使输出文档符合资源文件格式。

默认情况下,存储的凭证会替换为 ${VAR} 占位符。AISIX 会将占位符名称及其来源字段打印到标准错误。加载导出的文件之前,请在网关环境中设置这些变量。

警告

只有在受控迁移确实需要把明文凭证保留在文件中时才使用 --reveal-secrets。请勿提交、发布该输出,也不要将其复制到不安全的位置。

该命令会报告无法解码的 etcd 条目和资源关系警告,并仍然写出结果供检查。如果命名冲突或悬空引用导致文件无法加载,它会以非零状态退出。切换网关使用该文件之前,请验证完成后的文件:

aisix validate --resources resources.yaml