跳到主要内容

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_BACKENDADC_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, 12
--backend <backend>apisix要连接的后端类型。apisixapi7eeADC_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-verifyfalse连接后端 Admin API 时是否验证 TLS 证书。ADC_TLS_SKIP_VERIFY
--request-concurrent10到后端的并发请求数

示例用法

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, 12
--backend <backend>apisix要连接的后端类型。apisixapi7eeADC_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-verifyfalse连接后端 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, 12
--backend <backend>apisix要连接的后端类型。apisixapi7eeADC_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-verifyfalse连接后端 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, 12
--backend <backend>apisix要连接的后端类型。apisixapi7eeADC_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-verifyfalse连接后端 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

打印通用帮助菜单或指定命令的帮助菜单。

示例用法

adc help [command]