一、部署方式选型分析
以下从不同维度对比 SCF 两种不同部署方式的特性:
| 条目 | 代码部署 | 镜像部署 |
| 描述 | 将代码文件上传给 SCF,作为函数的运行代码,在 SCF 提供的基础镜像上运行。 | 指定用户自己制作的镜像作为函数的运行环境。 |
| 大小限制 | 函数代码+关联的层版本代码大小总和小于等于 500MB(压缩前) | 1GB(解压前) |
| 格式/镜像仓库支持 | zip、jar(java) | 腾讯云容器镜像服务 |
| 运行环境 | Python 3.7Python 3.6Python 2.7Node.js 16.13Node.js 14.18Node.js 12.16PHP 8.0PHP 7.4PHP 7.2PHP 5.6Java11Java8Golang 1CustomRuntime | 无限制 |
| 自定义启动文件 | 不支持 | 支持 |
| 设置监听端口 | 不需要 | 需要监听固定端口9000 |
| 业务场景 | 基础运行环境可以支持、不需要自定义启动命令等业务场景。 | 基础运行环境暂不支持、原始业务基于镜像构建想快速迁移到云函数等业务场景。 |
二、代码部署
云函数 SCF 提供了三种代码部署的方式:
·在线上传 zip 包,仅支持50MB 以下的代码包。
·在线上传文件夹,仅支持250MB 以下的文件夹。
·通过 COS 上传 zip 包。
注意:说明:
注意:上述三种代码部署方式,代码包大小均受限于代码包与关联的层版本大小总和小于等于 500MB(压缩前)。
如超出500MB,建议精简代码包大小,或将部分依赖文件上传至 对象存储 COS 或者 文件系统 CFS,在函数代码中进行引用。如果依赖文件需要在代码初始化阶段引用,建议 使用 CFS。
三、镜像部署
云函数 SCF 镜像部署能力,由 腾讯云容器镜像服务 提供支持。腾讯云容器镜像服务是腾讯云提供的容器镜像云端托管服务,支持 Docker 镜像、Helm Chart 存储分发及镜像安全扫描。通过使用容器镜像服务,你不再需要自建并维护镜像托管服务,即可在云上享有安全高效的镜像托管、分发服务。
使用 SCF 镜像部署功能,你只需要将本地构建好的镜像推到 TCR 镜像仓库,在 创建函数 的时候选择指定的镜像即可。