APISIX 声明式 CLI(ADC)
API 声明式 CLI (ADC) 是一个用于以声明方式管理 APISIX 和 API7 企业版的命令行工具。它在定义网关的所需状态方面提供了简单性和清晰度,允许开发人员和管理员专注于结果而不是步骤。
声明式配置作为单一事实来源,开发人员可以通过其现有的版本控制系统进行管理。
ADC 具有以下通用语法:
adc [command] [options]
具有全局选项:
-v, --version检查版本-h, --help打印命令的帮助菜单
安装 ADC
使用快速入门脚本安装 ADC:
curl -sL "https://run.api7.ai/adc/install" | bash
要验证安装,请运行:
adc help
你应该看到以下响应:
Usage: adc [options] [command]
Options:
-v, --version output the version number
-h, --help display help for command
Commands:
ping [options] Verify connectivity with backend
dump [options] Dump configurations from the backend
diff [options] Show the difference between local and backend configurations
sync [options] Sync local configurations to backend
convert [options] Convert other API spec to ADC configurations
lint [options] Check provided configuration files, local execution only, ensuring inputs meet ADC requirements
help [command] display help for command
默认情况下,后端设置为 apisix,服务器设置为 http://localhost:9180。要验证与 APISIX 的连接,请运行:
adc ping
你应该看到以下响应:
Connected to the "apisix" backend successfully!
配置 ADC
在使用 ADC 管理网关之前,需要对其进行配置。你可以使用环境变量或命令行标志配置 ADC。
使用环境变量
ADC 将所有配置选项公开为环境变量。例如,你可以分别使用 ADC_BACKEND 和 ADC_SERVER 环境变量配置后端类型和地址。
export ADC_BACKEND=apisix
export ADC_SERVER=http://localhost:9180
更好的方法是在 .env 文件中配置这些选项:
.env
ADC_BACKEND=apisix
ADC_SERVER=http://localhost:9180
使用命令行标志
你还可以使用命令行标志配置 ADC 或覆盖环境变量中的配置。例如,要为 ping 命令配置/覆盖后端类型和地址:
adc ping --backend apisix --server "http://localhost:9180"
运行 adc help [command] 查看命令的可用配置选项。
命令
adc ping
Ping 配置的后端以验证连接。
| 选项 | 默认值 | 描述 | 有效值 | 环境变量 |
|---|---|---|---|---|
--verbose <integer> | 1 | 覆盖详细日志记录级别。0 表示无日志,1 表示基本日志,2 表示调试日志。 | 0, 1 或 2 | |
--backend <backend> | apisix | 要连接的后端类型。 | apisix 或 api7ee | ADC_BACKEND |
--server <string> | http://localhost:9180 | 后端服务器地址。 | ADC_SERVER | |
--token <string> | 访问后端的 API 令牌。 | ADC_TOKEN | ||
--gateway-group <string> | default | 要操作的网关组。 | ADC_GATEWAY_GROUP | |
--label-selector <selectors> | 要过滤的资源标签。 | |||
--include-resource-type <string> | 过滤资源类型,使得资源搜索结果仅包含指定类型。 | |||
--exclude-resource-type <string> | 过滤资源类型,使得资源搜索结果排除指定类型。 | |||
--timeout <duration> | 10s | 客户端连接后端 Admin API 的请求超时时间,如 30s、10m 和 1h10m。 | ||
--ca-cert-file <string> | 用于验证后端 Admin API 的 CA 证书路径。 | ADC_CA_CERT_FILE | ||
--tls-client-cert-file <string> | 用于验证后端 Admin API 的 mTLS 客户端证书路径。 | ADC_TLS_CLIENT_CERT_FILE | ||
--tls-client-key-file <string> | 用于验证后端 Admin API 的 mTLS 客户端密钥路径。 | ADC_TLS_CLIENT_KEY_FILE | ||
--tls-skip-verify | false | 连接后端 Admin API 时是否验证 TLS 证书。 | ADC_TLS_SKIP_VERIFY | |
--request-concurrent | 10 | 到后端的并发请求数 |
示例用法
adc ping --backend apisix --server http://localhost:9180
adc lint
在本地验证提供的配置文件。
| 选项 | 默认值 | 描述 | 有效值 | 环境变量 |
|---|---|---|---|---|
-f, --file <file-path> | 要 lint 的文件。 |
示例用法
adc lint -f service-a.yaml -f service-b.yaml
adc sync
将本地配置同步到连接的后端。
| 选项 | 默认值 | 描述 | 有效值 | 环境变量 |
|---|---|---|---|---|
--verbose <integer> | 1 | 覆盖详细日志记录级别。0 表示无日志,1 表示基本日志,2 表示调试日志。 | 0, 1 或 2 | |
--backend <backend> | apisix | 要连接的后端类型。 | apisix 或 api7ee | ADC_BACKEND |
--server <string> | http://localhost:9180 | 后端服务器地址。 | ADC_SERVER | |
--token <string> | 访问后端的 API 令牌。 | ADC_TOKEN | ||
--gateway-group <string> | default | 要操作的网关组。 | ADC_GATEWAY_GROUP | |
--label-selector <selectors> | 要过滤的资源标签。 | |||
-f, --file <file-path> | 要同步的配置文件。 | |||
--include-resource-type <string> | 过滤资源类型,使得资源搜索结果仅包含指定类型。 | |||
--exclude-resource-type <string> | 过滤资源类型,使得资源搜索结果排除指 定类型。 | |||
--timeout <duration> | 10s | 客户端连接后端 Admin API 的请求超时时间,如 30s、10m 和 1h10m。 | ||
--ca-cert-file <string> | 用于验证后端 Admin API 的 CA 证书路径。 | ADC_CA_CERT_FILE | ||
--tls-client-cert-file <string> | 用于验证后端 Admin API 的 mTLS 客户端证书路径。 | ADC_TLS_CLIENT_CERT_FILE | ||
--tls-client-key-file <string> | 用于验证后端 Admin API 的 mTLS 客户端密钥路径。 | ADC_TLS_CLIENT_KEY_FILE | ||
--tls-skip-verify | false | 连接后端 Admin API 时是否验证 TLS 证书。 | ADC_TLS_SKIP_VERIFY |
示例用法
adc sync -f service-a.yaml -f service-b.yaml --backend apisix --server http://localhost:9180
adc dump
将后端配置保存到本地文件。
| 选项 | 默认值 | 描述 | 有效值 | 环境变量 |
|---|---|---|---|---|
--verbose <integer> | 1 | 覆盖详细日志记录级别。0 表示无日志,1 表示基本日志,2 表示调试日志。 | 0, 1 或 2 | |
--backend <backend> | apisix | 要连接的后端类型。 | apisix 或 api7ee | ADC_BACKEND |
--server <string> | http://localhost:9180 | 后端服务器地址。 | ADC_SERVER | |
--token <string> | 访问后端的 API 令牌。 | ADC_TOKEN | ||
--gateway-group <string> | default | 要操作的网关组。 | ADC_GATEWAY_GROUP | |
--label-selector <selectors> | 要过滤的资源标签。 | |||
-o, --output <file-path> | 指定转储后端数据的文件路径。 | |||
--include-resource-type <string> | 过滤资源类型,使得资源搜索结果仅包含指定类型。 | |||
--exclude-resource-type <string> | 过滤资源类型,使得资源搜索结果排除指定类型。 | |||
--timeout <duration> | 10s | 客户端连接后端 Admin API 的请求超时时间,如 30s、10m 和 1h10m。 | ||
--ca-cert-file <string> | 用于验证后端 Admin API 的 CA 证书路径。 | ADC_CA_CERT_FILE | ||
--tls-client-cert-file <string> | 用于验证后端 Admin API 的 mTLS 客户端证书路径。 | ADC_TLS_CLIENT_CERT_FILE | ||
--tls-client-key-file <string> | 用于验证后端 Admin API 的 mTLS 客户端密钥路径。 | ADC_TLS_CLIENT_KEY_FILE | ||
--tls-skip-verify | false | 连接后端 Admin API 时是否验证 TLS 证书。 | ADC_TLS_SKIP_VERIFY |
示例用法
adc dump -o apisix-dump.yaml --backend apisix --server http://localhost:9180
adc diff
显示本地文件和后端之间配置的差异。
| 选项 | 默认值 | 描述 | 有效值 | 环境变量 |
|---|---|---|---|---|
--verbose <integer> | 1 | 覆盖详细日志记录级别。0 表示无日志,1 表示基本日志,2 表示调试日志。 | 0, 1 或 2 | |
--backend <backend> | apisix | 要连接的后端类型。 | apisix 或 api7ee | ADC_BACKEND |
--server <string> | http://localhost:9180 | 后端服务器地址。 | ADC_SERVER | |
--token <string> | 访问后端的 API 令牌。 | ADC_TOKEN | ||
--gateway-group <string> | default | 要操作的网关组。 | ADC_GATEWAY_GROUP | |
--label-selector <selectors> | 要过滤的资源标签。 | |||
-f, --file <file-path> | 要比较的配置文件。 | |||
--include-resource-type <string> | 过滤资源类型,使得资源搜索结果仅包含指定类型。 | |||
--exclude-resource-type <string> | 过滤资源类型,使得资源搜索结果排除指定类型。 | |||
--timeout <duration> | 10s | 客户端连接后端 Admin API 的请求超时时间,如 30s、10m 和 1h10m。 | ||
--ca-cert-file <string> | 用于验证后端 Admin API 的 CA 证书路径。 | ADC_CA_CERT_FILE | ||
--tls-client-cert-file <string> | 用于验证后端 Admin API 的 mTLS 客户端证书路径。 | ADC_TLS_CLIENT_CERT_FILE | ||
--tls-client-key-file <string> | 用于验证后端 Admin API 的 mTLS 客户端密钥路径。 | ADC_TLS_CLIENT_KEY_FILE | ||
--tls-skip-verify | false | 连接后端 Admin API 时是否验证 TLS 证书。 | ADC_TLS_SKIP_VERIFY |
示例用法
adc diff -f service-a.yaml -f service-b.yaml --backend apisix --server http://localhost:9180
adc convert
将 API 规范转换为 ADC 配置。
| 选项 | 默认值 | 描述 | 有效值 | 环境变量 |
|---|---|---|---|---|
openapi | 将 OpenAPI 规范转换为 ADC 配置。 |
示例用法
adc convert openapi -f open-api-spec.yaml -o adc.yaml
adc help
打印通用帮助菜单或指定命令的帮助菜单。