函数部署选型

最近更新时间:2023-09-01 15:22:02

我的收藏
为满足不同使用场景下的用户需求,云函数 SCF 提供了代码部署、镜像部署 两种部署方式。本文介绍了不同的部署方式的差异和适用场景,供开发者选型参考。

部署方式选型分析

以下从不同维度对比 SCF 两种不同部署方式的特性:
条目
代码部署
镜像部署
描述
将代码文件上传给 SCF,作为函数的运行代码,在 SCF 提供的基础镜像上运行。
指定用户自己制作的镜像作为函数的运行环境。
大小限制
函数代码+关联的层版本代码大小总和小于等于 500MB(压缩前)
1GB(解压前)
格式/镜像仓库支持
zip、jar(java)
运行环境
Python 3.7
Python 3.6
Python 2.7
Node.js 16.13
Node.js 14.18
Node.js 12.16
PHP 8.0
PHP 7.4
PHP 7.2
PHP 5.6
Java11
Java8
Golang 1
CustomRuntime
无限制
自定义启动文件
不支持
支持
设置监听端口
不需要
需要监听固定端口9000
业务场景
基础运行环境可以支持、不需要自定义启动命令等业务场景。
基础运行环境暂不支持、原始业务基于镜像构建想快速迁移到云函数等业务场景。

部署方式

代码部署

云函数 SCF 提供了三种代码部署的方式:


在线上传 zip 包,仅支持50MB 以下的代码包
在线上传文件夹,仅支持250MB 以下的文件夹
通过 COS 上传 zip 包
说明
上述三种代码部署方式,代码包大小均受限于代码包与关联的层版本大小总和小于等于 500MB(压缩前)。 如超出500MB,建议精简代码包大小,或将部分依赖文件上传至 对象存储 COS 或者 文件系统 CFS,在函数代码中进行引用。如果依赖文件需要在代码初始化阶段引用,建议 使用 CFS

镜像部署

云函数 SCF 镜像部署能力,由 腾讯云容器镜像服务 提供支持。腾讯云容器镜像服务是腾讯云提供的容器镜像云端托管服务,支持 Docker 镜像、Helm Chart 存储分发及镜像安全扫描。通过使用容器镜像服务,您不再需要自建并维护镜像托管服务,即可在云上享有安全高效的镜像托管、分发服务。
使用 SCF 镜像部署功能,您只需要将本地构建好的镜像推到 TCR 镜像仓库,在 创建函数 的时候选择指定的镜像即可。