API 驱动的独立模式
API 驱动的独立模式 是 APISIX 独立部署模式的最新补充。在此模式下,路由规则完全存储在内存中,而不是配置文件中。所有更新必须通过专用的独立 Admin API 执行。每次更新都会替换完整配置并通过热更新立即生效,无需重启网关。
警告
此功能专为 APISIX Ingress Controller 设计,主要用于与 ADC 集成。APISIX 提供官方的、端到端的、无状态的 Ingress Controller 实现。除非你完全了解其内部工作原理和行为,否则不要直接使用此功能。
本文档提供了在 API 驱动的独立模式下使用 APISIX 的一些示例。要了解有关可用配置选项的更多信息,请参阅 Admin API 参考(但不要使用这些端点)。这些配置选项可以转换为 JSON 或 YAML,以便在 API 驱动的独立模式下使用。
示例
在 API 驱动的独立模式下,你将使用 /apisix/admin/configs API,而不是传统模式的 Admin API 端点。该 API 接受 JSON 和 YAML 输入。
独立模式 Admin API 具有与 config.yaml 中配置的传统模式 Admin API 相同的安全要求,包括 API 密钥、(m)TLS、CORS 和 IP 白名单。
获取所有配置
要获取所有配置:
curl "http://127.0.0.1:9180/apisix/admin/configs" -H "X-API-KEY: ${ADMIN_API_KEY}"
如果你没有配置任何资源,你应该看到以下响应:
{
"consumer_groups_conf_version": 0,
"secrets_conf_version": 0,
"global_rules_conf_version": 0,
"upstreams_conf_version": 0,
"ssls_conf_version": 0,
"protos_conf_version": 0,
"plugin_metadata_conf_version": 0,
"routes_conf_version": 0,
"services_conf_version": 0,
"plugin_configs_conf_version": 0,
"consumers_conf_version": 0
}
创建资源
例如,要创建一个路由:
curl -i -X PUT "http://127.0.0.1:9180/apisix/admin/configs" \
-H "X-API-KEY: ${ADMIN_API_KEY}" \
-H "Content-Type: application/json" \
-d '
{
"routes": [
{
"id": "getting-started-ip",
"uri": "/ip",
"upstream": {
"type": "roundrobin",
"nodes": {
"httpbin.org:80": 1
}
}
}
]
}'
或者,你也可以使用 YAML 输入:
curl -X PUT "http://127.0.0.1:9180/apisix/admin/configs" \
-H "X-API-KEY: ${ADMIN_API_KEY}" \
-H "Content-Type: application/yaml" \
--data-binary @- <<EOF
routes:
- id: getting-started-ip
uri: /ip
upstream:
type: roundrobin
nodes:
"httpbin.org:80": 1
EOF
你应该收到 HTTP/1.1 202 Accepted 响应。
现在,当你通过 获取所有配置 查看更改时,你应该看到 *_conf_version 自动增加了 1。