发布服务版本
为了对部署的 API 进行版本控制,请利用 API7 网关将服务版本发布到不同的网关组中,而不是在原有的网关组中直接进行就地编辑。
通常,API 版本会首先发布到测试(test)和预发布(staging)环境中,然后再发布到生产(production)环境。API7 网关通过网关组来管理这种环境隔离,其中 API 属于一个特定的已发布服务并共享一个上游(Upstream)。
本教程将指导你如何将 httpbin 服务发布到 API7 网关的某个网关组中。你将学习到:
- 如何手动创建服务以及通过 OpenAPI 规范文件创建服务。
- 如何通过配置上游节点及使用服务发现机制来发布服务。
前提条件
- 安装 API7 企业版。
- 网关组中至少拥有一个网关实例。
添加带有路由的服务模板
手动添加
- 控制台 (Dashboard)
- ADC
- 从侧边导航栏选择服务中心,然后点击新增服务。
- 选择手动新增。
- 在对话框中,执行以下操作:
- 在服务类型字段中,选择
HTTP(七层)。 - 在名称字段中,输入
httpbin。 - 点击添加新增。
- 在服务内部,点击新增路由。
- 在新增路由对话框中,执行以下操作:
- 在路由名称字段中,输入
get-ip。 - 在路径字段中,输入
/ip。 - 在请求方法字段中,选择
GET。 - 点击新增。
创建一个包含服务及其上游和路由配置的 ADC 配置文件:
adc.yaml
services:
- name: httpbin
upstream:
name: httpbin upstream
scheme: http
nodes:
- host: httpbin.org
port: 80
weight: 100
routes:
- uris:
- /ip
name: get-ip
methods:
- GET
导入 OpenAPI 规范
控制台和 ADC 都支持导入 OpenAPI v3.0 规范。
在 YAML/JSON 文件中定义你的 API,如下所示:
OpenAPI.yaml
openapi: 3.0.0
info:
title: httpbin
description: "httpbin for the API7 Enterprise Getting Started guides."
version: 1.0.0
paths:
"/anything/*":
get:
tags:
- Anything
summary: Returns anything that is passed into the request.
operationId: get-ip
responses:
"200":
description: Successful Response
content:
application/json:
schema:
type: string
tags:
- name: Anything
description: Return anything that is passed in on the request.
然后,在 API7 网关中使用它:
- 控制台 (Dashboard)
- ADC
- 从侧边导航栏选择服务中心,然后点击新增服务。
- 选择导入 OpenAPI。
- 在对话框中,执行以下操作:
- 上传你的 YAML/JSON 文件。
- 点击下一步。
- 确认以下信息:
- 名称:OpenAPI 规范中的
title字段。 - 标签:OpenAPI 规范中的
tags字段。 - 描述:OpenAPI 规范中的
description字段。 - 路由:OpenAPI 规范中的
Paths字段。 - 点击新增。
使用 ADC 将 OpenAPI 规范转换为 ADC 配置文件:
adc convert openapi -f openapi.yaml -o adc.yaml
将单个服务发布到网关组
- 控制台 (Dashboard)
- ADC
- 从侧边导航栏中选择服务中心,然后选择
httpbin。 - 点击立即发布。
- 在对话框中执行以下操作:
- 在网关组字段中,选择目标网关组,例如
default。 - 在新版本字段中,输入
1.0.0。 - 点 击发布。
信息
首次发布服务时,需要配置必要的服务运行时配置并启用该服务以激活你的 API。在随后的发布中,服务状态和运行配置将继承自上一版本。
将上一步创建的配置文件同步到目标网关组,例如 default:
adc sync -f adc.yaml --gateway-group default
配置服务运行时配置
- 发布完成后,你将被重定向到网关组上已发布的服务。
- 从侧边导航栏中选择