配置文件

配置监听端口、容器规格、扩缩容条件、版本环境变量等参数的名为container.config.json的json文件,支持带有注释的json(即 jsonc,可以用 jsonc-parser - npm (npmjs.com) 进行解析)。使用流水线时必须要用到,否则流水线新建不成功。 另在版本列表中新建版本时,会优先使用新建版本中的配置内容,代码中的配置文件内容将不会生效。

默认配置文件模板内容如下,业务可自行根据需求进行更改,放置到代码的根目录下。

{
	// Listening port
	"containerPort": 80,
	// Dockerfile Route
	"dockerfilePath": "Dockerfile",
	// Build directory
	"buildDir": "",
	// Minimum number of instances
	"minNum": 0,
	// Maximum number of instances
	"maxNum": 50,
	// cpu Nuclear number
	"cpu": 0.25,
	// Memory size, in G
	"mem": 0.5,
	// Type of Expansion and Reduction Capacity
	"policyType": "cpu",
	// Expansion Volume Index Threshold
	"policyThreshold": 60,
	// Environment variable
	"envParams": {},
	// Log collection path
	"customLogs": "stdout",
	// Start-Up Detection Delay
	"initialDelaySeconds": 2
}
  • containerPort(端口监听):云托管需要显式配置服务监听 HTTP 请求的端口,默认为 80端口。监听端口必须为1~61000之间的整数且不能为9100。如果使用自己的容器,需要确定监听的端口与版本配置的端口号一致,才能让请求正确的路由到容器内部应用中。在示例应用中,我们在代码指定了监听端口,即 80 端口。
  • dockerfilePath(Dockerfile路径):Dockerfile文件在代码中的路径,Dockerfile文件需放置在代码根目录下,默认路径为Dockerfile。
  • buildDir(构建目录):在云托管构建镜像时,默认使用根目录构建。如果需要构建的文件在子文件夹内部,可以在此指定。
  • minNum(最小实例数):指当前服务版本在自动缩容时可达到的最小实例数。最小值下限为 0,默认最小值为 0。如服务想要低成本模式,可设置实例数最小值为0,当版本30min内无流量访问时,云托管自动将该版本缩容至0以达到服务无流量0成本;如服务想要高可用模式,可设置实例数最小值为非0;
  • maxNum(最大实例数):指当前服务版本在自动扩容时可达到的最大实例数。最大值上限为 50,默认最大值为 50。可根据业务实际情况调整;
  • cpu(CPU核数):容器实例规格;默认最小规格0.25核。
  • mem(内存大小):容器实例规格;默认最小规格0.5G。
  • policyType(自动扩缩容条件):当达到某个条件时,云托管会自动会创建/删除一个实例,冷却 15 秒后,检测是否再次达到条件,如果满足条件则继续扩缩容,如此反复直至实例数量达到副本个数的最小值/最大值,或不再满足扩缩容条件时停止自动扩缩容。目前支持 CPU 使用率/内存使用率2个扩缩容条件,默认CPU使用率;即当前实例 CPU 使用率超过设定值后,若实例数小于最大副本个数,则创建出一个新的实例。
  • policyThreshold(自动扩缩容条件阈值):默认值为 60%。即当前实例 CPU 使用率超过60%后,若实例数小于最大副本个数,则创建出一个新的实例。
  • envParams(环境变量):版本所需的环境变量,直接传入容器中。以 key value 的形式可配置多个。
  • customLogs(业务日志采集路径):可设置目录或文件,支持设置多个路径。采集到的日志可以在日志中查看。默认路径为 stdout。
  • initialDelaySeconds:实例创建完成后,等待一定的时间后开始进行健康检查。若健康检查失败,将重试 3 次,依然失败则判定服务版本异常。请将此值设定为大于应用启动的时间,否则版本可能持续处于异常状态。默认值为 2 秒。