代码规范详情
收藏
我的收藏- 1.服务本身 必须是 无状态 的,如需状态可存储到远端 redis/mysql,服务启动不依赖本地内存cache/落盘的数据
- 2.服务目前 能且只能 监听8000端口,如果您的服务没有监听正确的端口,服务发布冷启动过程将会出现以下错误:
{ "Status": "failed", "StatusMessage": "Function cold start timeout, please check your log/code and then retry, or contact oncall" }
chmod a+x run.sh
- 4.对于 HTTP 服务,必须 额外实现一个
GET "/v1/ping"
接口,平台通过该接口状态(是否返回 Status Code 200)判断服务存活性- 5.不鼓励 服务启动后台进程、线程(即请求已经返回了Response,但后台仍有任务异步执行),平台测会根据请求量对后端实例进行动态扩缩容,所以无法保证后台进程/线程存活性。
- 6.默认都是 UTC 时区(不区分中国区和非中国区)。通过以下两种方式可以设置时区:
- a.通过环境变量设置时区; 可以在服务配置页面上设置TZ环境变量,重新发布后生效。 注意:存在一些基础镜像, 由于自身不携带tzdata包,导致设置TZ环境变量后,代码中也无法生效。
- b.代码入口,执行全局时区设置。
func init() { var cstZone = time.FixedZone("CST", 8*3600) time.Local = cstZone }