快速开始
本快速入门将引导你使用 Docker Compose 在本地部署 API7 网关,创建第一个服务和路由,并验证 API 流量已通过网关代理。
本快速入门使用 Docker Engine。如果 RHEL 主机使用 Podman,请参阅使用 Podman 部署。
预计用时:约 10 分钟
前置条件
| 要求 | 最低版本 |
|---|---|
| Docker | v20.10+ |
| Docker Compose | v2.0+ |
| curl | 任意版本 |
| API7 企业版许可证 | 获取试用许可证 |
第 1 步:安装 API7 网关
运行快速入门脚本以部署所有 API7 网关组件:
curl -sL "https://run.api7.ai/api7/quickstart" | bash
该命令会启动控制面、控制台、DP Manager、开发者门户、网关、PostgreSQL、Prometheus 和 Jaeger。请等待脚本执行完成;你应看到类似输出:
✔ Container api7-ee-postgresql-1
✔ Container api7-ee-prometheus-1
✔ Container api7-ee-jaeger-1
✔ Container api7-ee-api7-ee-dashboard-1
✔ Container api7-ee-api7-ee-dp-manager-1
✔ Container api7-ee-api7-ee-developer-portal-1
...
Waiting for service api7-ee-gateway to be ready...
Service api7-ee-gateway is ready.
✔ API7-EE is ready!
任何一步失败时,脚本都会以非零状态码退出,不会打印 API7-EE is ready!,而是打印失败原因、docker compose ps -a 的输出和各服务最后的日志。
验证所有容器均在运行:
docker ps
你应能看到 api7-ee-gateway-1、api7-ee-api7-ee-dashboard-1、api7-ee-api7-ee-dp-manager-1、api7-ee-api7-ee-developer-portal-1、api7-ee-postgresql-1、api7-ee-prometheus-1 和 api7-ee-jaeger-1 容器。
第 2 步:激活 API7 网关
-
在浏览器中打开
https://localhost:7443。 -
使用默认凭证登录:
字段 值 用户名 admin密码 admin -
上传 API7 企业版许可证以激活平台。
快速入门会自动创建名为 default 的网关组,并在其中运行一个网关实例。你可以在控制台侧边栏中进入 网关组 进行确认。
如果想在后续步骤中使用 Admin API,请按照从控制台获取 Token从控制台创建 Token,然后将其导出为环境变量:
export API_KEY="a7ee-xxxxxxxxxxxxx"
第 3 步:创建服务和路由
创建一个将请求代理到 httpbin.org 的服务:
- 控制台
- Admin API
- ADC
-
在控制台侧边栏中进入
default网关组,然后点击 服务。 -
点击 新增服务,再点击 手动新增。
-
配置服务:
字段 值 名称 httpbin服务类型 HTTP(七层) 上游协议 HTTP如何找到上游 使用节点 -
点击 新增节点,并进行如下配置:
字段 值 主机 httpbin.org端口 80权重 100 -
点击 新增 创建服务。
-
点击
httpbin服务,然后点击 新增路由。 -
配置路由:
字段 值 名称 get-anything路径 /anything/*方法 GET -
点击 新增。
# 创建包含上游的服务
curl -k "https://localhost:7443/apisix/admin/services/httpbin?gateway_group_id={gateway_group_id}" -X PUT \
-H "X-API-KEY: ${API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"name": "httpbin",
"upstream": {
"type": "roundrobin",
"scheme": "http",
"nodes": [
{ "host": "httpbin.org", "port": 80, "weight": 100 }
]
}
}'
# 在该服务下创建路由
curl -k "https://localhost:7443/apisix/admin/routes/get-anything?gateway_group_id={gateway_group_id}" -X PUT \
-H "X-API-KEY: ${API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"name": "get-anything",
"service_id": "httpbin",
"paths": ["/anything/*"],
"methods": ["GET"]
}'
如果不是在本地运行,请将 localhost 替换为你的 Admin API 主机。若 Admin API 使用自签名 TLS 证书,则必须使用 -k 标志。将 {gateway_group_id} 替换为网关组 ID:对于快速开始创建的网关组,请使用 default;也可从控制台的 网关组 页面复制该 ID。
首先,安装 ADC:
curl -sL "https://run.api7.ai/adc/install" | bash
使用 ADC 前,请将其配置为连接 API7 网关:
- 按照从控制台获取 Token从控制台创建 Token。请使用非 root 用户登录,并在控制台中创建 Token。
- 在工作目录中创建
.env文件:
ADC_BACKEND=api7ee
ADC_SERVER=https://localhost:7443
ADC_TOKEN=a7ee-xxxxxxxxxxxxx # 替换为你创建的 Token
ADC_GATEWAY_GROUP=default
ADC_TLS_SKIP_VERIFY=true
本地快速入门环境使用自签名 TLS 证书,因此此示例会禁用证书验证。生产部署中请勿禁用验证。Admin API 证书使用私有 CA 时,请省略 ADC_TLS_SKIP_VERIFY,并设置 ADC_CA_CERT_FILE=/path/to/ca.crt。
- 验证连通性:
adc ping
你应看到:Connected to the "api7ee" backend successfully!
- 创建配置文件:
services:
- name: httpbin
upstream:
name: default
scheme: http
nodes:
- host: httpbin.org
port: 80
weight: 100
routes:
- uris:
- /anything/*
name: get-anything
methods:
- GET
labels:
docs-example: httpbin