为满足不同场景下的用户需求,函数计算提供事件函数、Web函数、任务函数和GPU函数四种函数类型。针对不同开发流程,函数计算提供内置运行、自定义运行时和自定义镜像三种运行时环境。根据不同业务的资源利用率高低和用户对付费模式的预期差别,函数计算提供弹性实例和常驻实例两种实例类型。本文将介绍函数计算提供的功能特性及其适用场景,帮助您进行技术选型。
选型概述
使用函数计算时,您可以根据业务场景和技术栈偏好,选择合适的函数类型和运行环境,并结合实例使用类型优化性能和成本。
内置运行时和自定义运行时都以代码包形式部署至函数,适合轻量级应用。
容器化部署,需选择自定义镜像,GPU函数仅支持使用自定义镜像。
函数类型选型
对比项 | 事件函数 | Web函数 | 任务函数 | GPU函数 |
功能 | 支持流行的Web应用框架,可以通过浏览器访问,或通过URL调用。 | 用于处理异步请求,能够追踪并保存异步调用各个阶段的状态。 | 支持流行AI项目(如Stable Diffusion WebUI、ComfyUI、RAG、TensorRT)的容器镜像,快速构建AI模型推理服务。 | |
适用场景 |
|
|
|
|
运行时环境 | 推荐使用内置运行时 | 推荐使用自定义运行时 | 推荐使用内置运行时 | 仅支持自定义镜像 |
默认关闭 | 默认关闭 | 默认开启 | 默认关闭 |
运行时环境选型
对比项 | 内置运行时 | 自定义运行时 | 自定义镜像 |
开发流程 | 按照函数计算定义的接口编写请求处理程序。 | 基于Web应用框架模板开发应用,通过公网访问地址即时看到结果。 | 将自定义镜像上传至ACR然后使用镜像,或者使用ACR中已有的镜像。 |
支持的实例类型 | CPU实例 | CPU实例 | CPU实例和GPU实例 |
不支持 | 支持 | 支持 | |
最快。代码包中不包含运行时,冷启动最快。 | 较快。代码包为HTTP Server,体积较大但无需拉取镜像,因此冷启动较快。 | 较慢。需要拉取镜像,冷启动较慢。 | |
代码交付物格式 | ZIP、JAR(Java)、文件夹 | 容器镜像 | |
部分地域(如杭州)最大500 MB,其他地域最大100MB。 说明 您可以配置层添加依赖,以减少代码包体积。 |
说明 对于AI推理应用,您可以将大尺寸模型存储在NAS或OSS,以减少镜像体积。 | ||
支持的编程语言 | Node.js、Python、PHP、Java、C#、Go | 无限制 | 无限制 |
实例类型选型
针对CPU函数,仅支持弹性实例。针对GPU函数,您可以根据业务资源利用率、对延时敏感程度和对费用的稳定性要求,选择弹性实例或常驻实例,详细选型指引请参见以下流程图。
仅支持为Ada、Ada.2、Ada.3、Hopper和Xpu.1系列卡型的GPU函数绑定常驻实例。
弹性实例
如果设置函数的最小实例数为0,将按请求量自动弹性伸缩,无请求后实例自动回收,即按使用量计费,不使用不收费,能够做到最大程度降本。业务请求越频繁,资源利用率越高,相对虚拟机弹性的降本幅度越高。
是否存在冷启动
是。针对时延敏感业务,为了解决冷启动问题,可以设置最小实例数≥1,提前锁定弹性资源,当请求到达时,迅速唤醒实例执行请求。
计费说明(后付费)
函数的使用费用由弹性实例(活跃)和弹性实例(闲置)费用构成,如果设置最小实例数≥1,建议开启闲置模式开关。弹性实例(闲置)状态下vCPU资源使用不收费,GPU资源使用仅收1/5费用,使用费用远远小于弹性实例(活跃)状态的费用。
关于弹性实例(活跃)和弹性实例(闲置)的场景划分,请参见弹性实例。
常驻实例
仅适用于GPU函数。用户需提前购买常驻资源池,然后基于常驻资源池为指定函数分配指定数量和卡型的常驻实例,从而实现使用成本的可控与固定。适用于业务资源利用率高、时延要求高或对费用稳定性有较高要求的场景。
是否存在冷启动
否。使用常驻实例时,函数最多可以同时处理的请求数=被分配的常驻实例数×实例并发数
,超出的请求将被流控,而未超出的请求,可以实现实时响应,彻底消除冷启动。
计费说明(预付费)
函数费用包括已购买的所有常驻资源池的预付费费用。