分环境是微服务的一个基本需求,Serverless 自然也具备这个功能,但腾讯云官方的文档写的不是很清楚,部分功能很费解。
最简单的需求
例如:我想配置:
dev.domain.com = 测试环境
pro.domain.com = 生产环境
这是一个很常见的需求,要求生产环境不能随便动,要是有个调整,可以随时发到测试环境看效果,确定改好了,再发到生产环境。
当然,复杂的项目还有更多的比如AB测试之类,预发布等等,在 Serverless 上都可以配置出来。
这里面分享下我个人对于这个 最简单的需求 的配置,供参考。
SCF 部分
- 函数首次发布后,进入版本版本,看到有一个
$LATEST
=默认流量:100 %
不用管 - 点发布新版本,不用填提交,看到一个
版本 = 1
- 进入别名管理, 看到一个
$DEFAULT = $LATEST 100%
不用管 - 点创建别名,别名名称用
release
权重选到版本 = 1 100%
发布版本 & 上线
很简单,再发一下新版本,比如2 ,然后把别名 release
权重选到 版本 = 2 100%
即可。
API 部分
- 新建 API ,选到函数后,会有版本下拉,选
别名:默认流量
注意:前辍选前别名,不要选版本 - 点完成发布, 只勾选 测试环境,不要勾选 发布环境和预发布环境,发布
- 再次编辑这个 API, 选到函数后,版本下拉, 选
别名:release
- 点完成发布,只勾选 发布环境,不要勾其它的,发布
- 在绑定域名里面,编辑用于做测试的域名,点击自定义路径映射 配置
路径 / = 测试
CDN 部分
- 如果没有CDN,那生产用的域名应该在 API里面配置,有CDN的话,在CDN里面配置,指向附赠的N级域名就行。
- CDN回源地址只能配一个,有些前端可能放在 COS 的,需要在 域名管理-回原配置-回源URL重写配置 里面加规则,不过这样就无法区分版本了。
CLS 配置
其实并没 CLS 什么事,之所以统一用别名,就是降低使用CLS的一个认知负担。查日志时 可以统一用 SCF_Alias
,就不再关心 SCF_Qualifier
的值了。
小贴士 ,常见环境
腾讯提供的三个常用配置项,通常情况如下,也是现在普遍认同的常规配置,可根据项目情况开启。
release | prepub | test | |
---|---|---|---|
环境名称 | 正式环境 | 预发布环境 | 测试环境 |
普通用户 | 可访问 | 不可访问, 但可授权部分用户访问 | 不可访问 |
连接数据库 | 正式库 | 正式库,通常采取兼容升级,发布稳定后再去除兼容 | 测试库 |
变动频率 | 低 | 中 | 高 |
CDN缓存 | 可以有 | 无 | 无 |
小结
环境配置,基本上是一个一次性工作,磨刀不误砍材工嘛,配好开发环境,就能随时都可以娱快的 deploy 了。