# 云托管概念说明

云托管使用与云函数不同的一些概念,下面将对这些概念进行介绍。

# 端口监听

云托管需要显式配置监听 HTTP 请求的端口,默认为 80。如果使用自己的容器,需要确定监听的端口与版本配置的端口号一致,才能让请求正确的路由到容器内部应用中。

示例应用中,我们在代码指定了监听端口,即 80 端口。

# 开发模式

云托管可以使用任何语言、任何框架编写应用,甚至直接使用公共的容器镜像。与云函数不同的是,为了提供应用所需要的基本运行环境,需要编写 Dockerfile 指定所使用的容器镜像。

# 流量分配

云托管中流量分配策略与云函数相近。在创建版本的时候,默认该版本不会被分配流量,需要在稍后版本创建成功后,点击「分配流量比例」,为新的版本分配流量。

在创建版本时,也可以直接选择「开启 100% 流量」将版本直接设置为全部流量的版本。

为了版本的迭代安全,建议待容器正确启动,且按比例灰度一段时间后,再切换流量到新的版本。

# Dockerfile

容器 Dockerfile 是云托管为应用创建基础环境所用到的配置文件。

# 构建目录

在云托管构建镜像时,默认使用根目录构建。如果需要构建的文件在子文件夹内部,可以在此指定。

# 容器规格

云托管支持指定多种容器规格,支持的规格如下:

CPU 核心数量 支持的内存
0.25 0.5GB
1GB
2GB
0.5 1GB
2GB
3GB
4GB
1 1 - 8 GB(整数)
2 4 - 16 GB(整数)
4 8 - 32 GB (整数)
8 16 - 32 GB (整数)
12 24 - 48 GB (整数)
12 32 - 64 GB (整数)

可以根据容器需要进行选择。

# 实例数量

指当前服务版本在自动扩缩容时可达到的最大实例数及最小实例数。最小值下限为 0,最大值上限为 50。默认最小值为 0,最大值为 50。

# 扩缩容条件

当达到某个条件时,云托管会自动会创建/删除一个实例,冷却 15 秒后,检测是否再次达到条件,如果满足条件则继续扩缩容,如此反复直至实例数量达到副本个数的最小值/最大值,或不再满足扩缩容条件时停止自动扩缩容。

目前仅支持 CPU 使用率作为扩缩容条件,即当前实例 CPU 使用率超过设定值后,若实例数小于最大副本个数,则创建出一个新的实例。默认值为 60%。

# 日志采集路径

可设置目录或文件,支持设置多个路径。采集到的日志可以在日志中查看。默认路径为 stdout。

# 环境变量

用户所需的环境变量,直接传入容器中。以 key value 的形式可配置多个。

# 云调用令牌

云托管服务使用云调用时所需的access-token。

  1. 订阅 用户在微信开发者工具云开发控制台创建容器服务版本时,可勾选开启 access_token 自动同步能力。

  2. 推送 用户开启后,微信开始定时周期性进行 access_token 推送,并确保推送成功,access_token 将被推送到用户云托管环境下用户资源中进行存储。access_token 有效期为30分钟,推送间隔为10分钟

  3. 使用 用户云托管环境中的 access_token 将会以只读权限挂载到用户容器中,挂载路径为:/.tencentcloudbase/wx/cloudbase_access_token 。微信推送新的access_token后容器中的access_token会同步更新。用户可以读取 access_token 并在请求时放到请求参数上,用户需要主动在 access_token 更新后替换,如定时轮询文件或 watch 文件变化,或每次读取文件。

  4. 取消订阅 用户删除全部开启推送的版本后,取消订阅。