0%

ServerLess 实践日志4:环境

分环境是微服务的一个基本需求,Serverless 自然也具备这个功能,但腾讯云官方的文档写的不是很清楚,部分功能很费解。

最简单的需求

例如:我想配置:

dev.domain.com = 测试环境
pro.domain.com = 生产环境

这是一个很常见的需求,要求生产环境不能随便动,要是有个调整,可以随时发到测试环境看效果,确定改好了,再发到生产环境。

当然,复杂的项目还有更多的比如AB测试之类,预发布等等,在 Serverless 上都可以配置出来。

这里面分享下我个人对于这个 最简单的需求 的配置,供参考。

SCF 部分

  1. 函数首次发布后,进入版本版本,看到有一个 $LATEST = 默认流量:100 % 不用管
  2. 点发布新版本,不用填提交,看到一个 版本 = 1
  3. 进入别名管理, 看到一个 $DEFAULT = $LATEST 100% 不用管
  4. 点创建别名,别名名称用 release 权重选到 版本 = 1 100%

发布版本 & 上线

很简单,再发一下新版本,比如2 ,然后把别名 release 权重选到 版本 = 2 100% 即可。

API 部分

  1. 新建 API ,选到函数后,会有版本下拉,选 别名:默认流量 注意:前辍选前别名,不要选版本
  2. 点完成发布, 只勾选 测试环境,不要勾选 发布环境和预发布环境,发布
  3. 再次编辑这个 API, 选到函数后,版本下拉, 选 别名:release
  4. 点完成发布,只勾选 发布环境,不要勾其它的,发布
  5. 在绑定域名里面,编辑用于做测试的域名,点击自定义路径映射 配置 路径 / = 测试

CDN 部分

  1. 如果没有CDN,那生产用的域名应该在 API里面配置,有CDN的话,在CDN里面配置,指向附赠的N级域名就行。
  2. CDN回源地址只能配一个,有些前端可能放在 COS 的,需要在 域名管理-回原配置-回源URL重写配置 里面加规则,不过这样就无法区分版本了。

CLS 配置

其实并没 CLS 什么事,之所以统一用别名,就是降低使用CLS的一个认知负担。查日志时 可以统一用 SCF_Alias ,就不再关心 SCF_Qualifier 的值了。

小贴士 ,常见环境

腾讯提供的三个常用配置项,通常情况如下,也是现在普遍认同的常规配置,可根据项目情况开启。

release prepub test
环境名称 正式环境 预发布环境 测试环境
普通用户 可访问 不可访问, 但可授权部分用户访问 不可访问
连接数据库 正式库 正式库,通常采取兼容升级,发布稳定后再去除兼容 测试库
变动频率
CDN缓存 可以有

小结

环境配置,基本上是一个一次性工作,磨刀不误砍材工嘛,配好开发环境,就能随时都可以娱快的 deploy 了。