1. 创建别名:n在云函数 B 中创建别名 release、prepub,可暂时指向 $LATEST 版本。n2. 创建 API 网关:n在 API 网关中创建服务 A,配置 API 指向函数 B 的别名 release,并发布到 API 服务的 release stage 中。如何创建并发布 API 请参见 API 创建 及 API 发布。n3. 修改 API 配置:na. 指向函数 B 的别名 prepub,并发布到 API 服务的 prepub stage 中。nb. 指向函数 B 的默认流量,并发布到 API 服务的 dev stage 中。
至此已分离测试环境、预发布环境和发布环境,但三个环境均指向 $LATEST 版本。API 网关的配置已完成,后续无需再次修改及发布 API 网关配置。
开发测试发布过程:持续开发、测试、发布、上线
1. 发布版本:n在云函数上持续开发并依次发布版本1、2、3、4。假设版本1已在发布环境,版本2在预发布环境测试,版本3和版本4在测试环境测试。n2. 开发需要测试的最近版本:n配置 $DEFAULT 别名指向 $LATEST 版本,开发人员可基于此版本持续地进行开发,开发完成后可以发布版本。n3. 预发布环境测试:n假设版本3可进入预发布环境时,配置函数 B 的 prepub 别名指向版本3,即可在预发环境进行测试和体验。n4. 预发布环境按用户灰度:n假设版本4可进入预发布环境,需要将用户 Bob 的调用路由至函数 B 的版本4,将其他用户路由至版本3,将函数 B 的 prepub 别名配置为按规则路由,内容为 invoke.headers.User exact Bob。如何按规则路由,请参见 按规则路由。n5. 预发布环境至发布环境灰度发布:n假设版本2已经在预发布环境完成体验可以上线时,将函数 B 的 release 别名的流量配置逐渐从版本1切换至版本2,并在灰度的过程中持续观察。如何配置别名的流量,请参见 云函数流量路由配置。n6. 发布过程中持续监控:n通过监控及日志查看灰度过程,版本2的流量是否正常上涨,版本1的流量是否正常下降,监控发布过程中的各版本错误情况及总体错误情况。
回滚过程:发布有故障时及时回滚
假设版本2在上线时有故障,需回滚至之前版本,则修改云函数 B 的 release 别名流量全部指向版本1即可。