文档中心>API 网关>迁移指南>从 API 网关迁移至云原生 API 网关

从 API 网关迁移至云原生 API 网关

最近更新时间:2024-09-29 17:50:31

我的收藏

操作场景

云原生 API 网关是腾讯云基于开源微服务网关推出的一款高性能高可用的云原生 API 网关产品,减少用户自建网关的开发及运维成本。云原生 API 网关作为云上微服务架构的流量入口,集成请求分发、API 管理、流量监控、访问限制等功能,是微服务架构中的重要组件。
说明:
目前云原生 API 网关仅对微服务场景(对接 TSE Nacos,TSE 北极星,TSF)支持开通白名单新购,其余场景不支持新接入。若有新购需求,请 提交工单处理。
本文将指导您如何将 API 网关 的服务迁移至腾讯云微服务引擎云原生 API 网关

初步了解

API 网关和云原生 API 网关,2个产品存在一部分相似功能,但并非完全一致。功能叫法、界面入口均存在差异,建议用户逐步适应。
为方便用户快速了解,如下是核心操作的概要示意图。下图仅以后端类型为公网域名或 IP 为例,其他后端类型同理。

注意:
用户需要特别区分一个概念,云原生网关虽然也有服务,但完全不同于 API 网关服务的概念。
API 网关 service 不区分类型,是一些 API 的组合,而每个 API 的后端类型可能不同。
云原生网关 service 是指一类具有相同后端类型的组合,其类型包含了 K8S 服务、注册中心、IP 列表、域名/IP、私有域名、云函数等,每个 service 包含了多个路由。
简化版举例:
在 API 网关中如果有一个服务包含3个 API,其中2个后端是公网(假设是 api1、api2),1个后端是云函数(假设是 api3)。
那么在云原生网关中需要创建2个服务,第1个服务是公网,在其中需要创建2个路由(分别对应 api1、api2),第二个服务是云函数,需创建1个路由(对应 api3)。

前提条件

1. 已有一个 API 网关的服务;
2. 已有一个云原生 API 网关的实例,详细参见 新建云原生网关实例
本文示例如下:
迁移前:广州地域,API 网关的服务,迁移一个服务的 API,先以后端类型为公网URL/IP,然后再迁移其他后端类型。
迁移后:中国大陆地域,云原生 API 网关;

步骤1:选出待迁移 API

1. 登录 API 网关控制台在左侧导航栏,单击服务,进入服务列表页。找到 需要迁移的服务。
2. 单击服务名称进入详情页,找到 API。本文示例的待迁移 API 假设配置如下:
2.1 其中 API 名称为获取用户信息。
2.2 其中前端路径为/QianYiTest1,请求方法为 GET,前端方法为 HTTP
2.3 其中后端路径为/QianYiTest2,后端协议为 HTTP,后端地址 test.com,后端方法为 GET


步骤2:新建迁移后的服务和路由

说明:
因本文仅作为示例,只说明核心步骤。您也可自行查看云原生 API 网关的官网文档,常用如下:

新建服务

1. 登录 云原生 API 网关控制台在左侧导航栏,单击路由管理,进入列表。
2. 依次选择一个网关实例(此处是提前在实例列表新建好的1个实例),单击服务 > 新建



3. 在新建服务窗口中,需要下图中的操作。
3.1 输入服务名称,此处取名为 QianYiTestName。建议为多个待迁移 API(这些 API 后端类型均为域名 / IP)定义同一个名称。
3.2 选择服务类型为域名 / IP,因为待迁移 API 后端类型是域名。
3.3 输入服务地址和端口,因为待迁移 API 的后端服务域名是 test.com、端口是80。
3.4 选择服务协议为HTTP,因为待迁移 API 的后端域名协议是 HTTP。
3.5 输入服务路径,因为待迁移 API 的后端路径是 /QianYiTest2

4. 返回服务列表,单击对应服务的 ID/名称 进入详情页。




新建路由

1. 路由管理页签下,单击新建。也即在该服务中新建一个转发路由,配置如下。
1.1 输入路由名称,此处和待迁移 API 保持一致,因此输入 “获取用户信息”。
1.2 选择请求协议,此处和待迁移 API 的前端方法保持一致,因此选择 HTTP&HTTPS。
1.3 输入匹配规则,此处和待迁移 API 的请求方法保持一致,因此选择 GET。
1.4 输入请求路径,此处和待迁移 API 的前端路径保持一致,因此输入 /QianYiTest1。


步骤3:验证访问

1. 在服务详情页,单击路由管理,可在基本信息 > 访问地址中查看到该路由的具体 IP。
2. 可通过访问该地址来测试是否联通、是否返回正常。更多详细指引可参见 云原生网关的验证请求转发


步骤4:迁移更多 API

说明:
因云原生网关创建服务时的类型和API网关不一致,下文仅针对API网关涉及的6种后端类型,在云原生网关中如何选择进行说明。其他步骤仍然参见上文的 步骤2步骤3
同时,以下仅作为简要说明,详细操作需在云原生网关控制台操作,如有疑问请在云原生网关中发起工单咨询。

情况1:后端类型为云函数

对于待迁移 API 的后端类型为SCF云函数时,在云原生网关中需新建一个服务,服务类型选择云函数
但需注意,如果是Web函数,需要提前在云函数侧开启URL,位置是函数服务-函数详情-函数URL-创建函数URL。否则将会提示“function must have function url first”。


情况2:后端类型为 TSF

对于待迁移 API 的后端类型为TSF微服务框架时,在云原生网关中需2个步骤。
步骤1:在服务来源中单击新建,来源类型选择注册中心,来源产品选择TSF注册中心,单击确定后会创建一个新的服务来源。

步骤2:在服务中单击新建,服务类型选择注册中心。服务来源选择步骤1中创建的来源。


情况3:后端类型为后端通道-VPC 通道

对于待迁移 API 的后端类型是VPC 通道时,在云原生网关中需要新建一个服务。
服务中单击新建,服务类型选择 IP 列表地址列表需要填写在 API 网关的后端通道 VPC 中填写的节点列表。


情况4:后端类型为后端通道-容器通道

对于待迁移 API 的后端类型是通过 VPC 关联了容器通道时,在云原生网关中需2个步骤;
步骤1:在服务来源中单击新建,来源类型选择容器服务

步骤2:在服务中单击新建,服务类型选择 K8S 服务,服务来源需选择在步骤1中创建的服务来源。


情况5:后端类型为对象存储COS

对于待迁移 API 的后端类型是对象存储COS 桶资源时,在云原生网关中需新建一个服务;
步骤:在服务中单击新建,服务类型选择 域名/IP 列表,在服务地址、端口需要填写COS桶的访问域名。但需注意该服务类型属于COS桶公网访问方式,请注意在桶中开启公网访问权限。




情况6:后端类型为Mock

对于待迁移 API 的后端类型是Mock内容时,在云原生网关中需新建一个自定义插件,再将插件绑定到服务和路由。
步骤:
1. 先参考云原生网关插件管理指引,查看自定义插件的开发规范。
2. 完成自定义插件开发,在插件中按规范自行写入需要Mock的内容。
3. 参考云原生网关插件管理指引中的“部署自定义插件”章节,在云原生网关插件管理中单击自定义插件、单击上传插件,上传后单击使用此版本。插件安装完成后,可绑定到服务和路由上。




其他常见场景

在 API 网关中,还存在 API 插件、限流、自定义域名等常见场景,对应到云原生 API 网关中的名称及操作指引,汇总如下:
API 网关现有名称
云原生网关的名称
云原生网关文档
系统插件、自定义插件
(仅可绑定到 API 级)
插件管理
1. 区分了13款系统插件、34款原生插件、自定义插件。
2. 插件支持实例级、服务级、路由级的不同粒度的绑定。
3. 自定义插件可直接界面添加。但系统插件、原生插件都需要前往 Konga 控制台添加,具体入口:依次单击实例列表 > 实例 ID > Konga 控制台 > 公网访问地址,打开新的控制台后可在 SERVICES PLUGINS 菜单中添加。






服务日志
可观测性-默认日志/日志投递
监控信息、数据统计
可观测性-请求监控/系统监控/业务监控等

自定义域名
新建路由 > 匹配规则中输入 Host



注意:如果该 Host 是 https:// 域名,则需绑定证书,控制台入口是 证书管理
服务限流、API限流
服务限流、路由限流