环境管理
本文档介绍如何在API网关上进行环境管理。
1. 什么是环境管理
当前每个分组内的API支持设置三个环境:测试(TEST)、预发(PRE)和线上(RELEASE)。目的是能够满足不同您的不同研发场景下的API 调用需求,如API测试环境,后端服务对应到您的测试环境资源,从而可以保证在同一套API配置的情况下,供您的测试人员进行测试使用。
在API网关上进行环境管理的时候,您需要做两部分工作:
API的后端服务环境:通过设置后端服务 ,为后端服务的测试、预发、线上环境分别定义不同值,从而当调用API时,API网关可以调用到不同的后端地址。
API的前端调用:需要client端显式的说明需要调用哪个环境。目前API网关支持两种方式,一种是为API分组的不同环境绑定不同的域名,另一种方式是在 Header 中增加入参
X-Ca-Stage
的信息。
本文将会分别介绍在API网关两种不同的后端服务类型( VPC 、 HTTP )情况下,如何结合两种不同的前端调用方式( X-Ca-Stage 、 域名 ),从而实现环境管理。
2. VPC后端+X-Ca-Stage
2.1 前期准备
在本例中,首先在ECS中创建了两个不同的VPC,每个VPC中各创建了一个ECS实例,各代表线上环境和测试环境的后端服务器,
每个ECS实例都开放了TCP 80端口,并且安装了nginx作为HTTP的web server,使用HTTP访问时,分别会返回{"env":"test env"}和{"env":"relese env"}。
本示例仅用于介绍如何使用API网关进行环境管理,因此并未考虑高可用、可扩展性、安全性等重要因素,故本示例的后端服务架构请勿作为您正式使用时的架构参考。
2.2 API后端配置
步骤1:由于本例中的API后端服务类型是VPC,因此需要分别创建两个VPC授权 backend-vpc-release 和 backend-vpc-test ,分别对应线上环境
和测试环境
,如何使用VPC作为API的后端服务的配置过程可详见创建后端服务为VPC内资源的API 。
步骤2:在API网关控制台中创建VPC类型的后端服务。
登录API网关控制台,在左侧导航栏开放API下,选择后端服务,进入后端服务列表页面;
在界面右上角单击创建后端服务,类型选择VPC。
步骤3:创建好后端服务后,在后端服务后的操作栏选择配置及关联的API,进入后端服务定义页面,测试环境和线上环境分别定义步骤1中创建的两个VPC授权。
后端服务定义界面上的四个选项卡中,‘草稿’可以查看使用了该后端服务的API,‘测试,预发,线上’可以定义具体的后端服务地址,并且可以查看使用了该后端服务并进行了发布的API。
更多关于后端服务的详情可以参考使用后端服务创建并管理API。
步骤5:创建API,创建完成后注意需要发布到线上环境和测试环境中,更多详情参考使用VPC内资源作为API的后端服务。
在创建API的第三步,定义后端服务页中后端配置选择使用已有的后端服务,后端服务选择步骤2中创建的后端服务。
2.3 使用X-Ca-Stage访问
线上环境调用。直接发起 API 调用,即调用线上环境。
预发环境调用。调用预发环境的API,则在调用API时,在 Header 中增加入参 X-Ca-Stage: PRE, 即可访问预发环境的 API。
测试环境调用。调用测试环境的API,则在调用API时,在 Header 中增加入参 X-Ca-Stage: TEST, 即可访问测试环境的 API。
3. Http后端+域名
3.1 前期准备
复用上一章节中的两个ECS,把这两个ECS实例作为API的HTTP后端。每个ECS实例都开放了TCP 80端口,安装了nginx作为HTTP的web server,使用HTTP访问时,分别会返回{"env":"test env"}和{"env":"relese env"}。
本示例仅用于介绍如何使用API网关进行环境管理,因此并未考虑高可用、可扩展性、安全性等重要因素,故本示例的后端服务架构请勿作为您正式使用时的架构参考。
3.2 API后端服务配置
步骤1:在API网关控制台中创建HTTP类型的后端服务。
登录API网关控制台,在左侧导航栏开放API下,选择后端服务,进入后端服务列表页面。
在界面右上角单击创建后端服务,类型选择HTTP(海外region及中国香港不支持创建HTTP类型的后端服务)。
步骤2:在后端服务后的操作栏选择‘配置及关联的API’,进入后端服务定义页面,分别为测试环境和线上环境定义不同的后端服务地址。
步骤3:创建API,创建完成后注意需要发布到线上环境和测试环境中,更多详情参考使用后端服务创建并管理API。
在创建API的第三步,定义后端服务页中后端配置选择使用已有的后端服务,后端服务选择步骤2中创建的后端服务。
步骤5:为API的环境绑定域名。在API分组
菜单中,进入绑定域名
。
步骤6:为测试环境和线上环境分别绑定两个域名,如下图所示。

3.3 使用域名访问
线上环境调用。使用绑定好的线上域名进行调用,如下图所示:

预发环境调用。使用绑定好的预发域名进行调用。
测试环境调用。使用绑定好的测试域名进行调用,如下图所示:
注意:绑定环境的域名优先级大于 X-Ca-Stage,即在调用绑定环境的域名中,仍然在header中添加 X-Ca-Stage 信息,API网关会以域名的环境配置为准,如下图所示:
