函数选型

为满足不同场景下的用户需求,函数计算提供事件函数、Web函数、任务函数和GPU函数四种函数类型。本文介绍函数计算支持的函数类型的适用场景及差异,供您进行技术选型。

选型分析

函数类型选型

对比项

事件函数

Web函数

任务函数

GPU函数

适用场景

通过事件触发(OSS触发器Kafka触发器SLS触发器等)来调用关联函数。

基于各个语言的流行Web应用框架(Java SpringBootNode.js ExpressPython FlaskGolang Gin等),快速构建Web应用,或者迁移已有的框架应用。

对函数发起异步调用,且需要追踪并保存异步调用各个阶段的状态,可以选择创建任务函数。

使用流行AI项目(Stable Diffusion WebUI、ComfyUI、RAG、TensorRT等)的容器镜像创建GPU实例,快速构建AI模型推理服务。

运行时环境

推荐使用内置运行时

推荐使用自定义运行时

推荐使用内置运行时

仅支持自定义容器运行环境

异步任务

默认关闭

默认关闭

默认开启

默认关闭

函数运行环境选型

对比项

内置运行时

自定义运行时

自定义容器运行环境

开发流程

按照函数计算定义的接口编写请求处理程序。

基于Web应用框架模板开发应用,通过公网访问地址即时看到结果。

将自定义镜像上传至ACR然后使用镜像,或者使用ACR中已有的镜像。

支持的实例类型

CPU实例

CPU实例

CPU实例和GPU实例

单实例多并发

不支持

支持

支持

冷启动

最快。代码包中不包含运行时,所以冷启动最快。

较快。代码包是一个HTTP Server程序,体积较大,但不需要拉取ACR容器镜像,所以冷启动会较快。

较慢。需要拉取镜像,所以冷启动较慢。

代码交付物大小限制

代码包大小不超过100 MB或500 MB,具体请参见代码部署包大小限制说明

  • CPU实例镜像大小不超过10 GB(未解压)。

  • GPU实例镜像大小不超过15 GB(未解压)。

代码交付物格式

ZIP、JAR(Java)、文件夹

容器镜像

支持的编程语言

Node.js、Python、PHP、Java、C#、Go

无限制

无限制

通过控制台创建函数

事件函数

如果您想通过事件触发(OSS触发器Kafka触发器SLS触发器等)来调用关联函数,请参见创建事件函数。推荐您选择内置运行时作为运行环境

image

Web函数

如果您想基于各个语言的流行框架(Java SpringBootNode.js ExpressPython FlaskGolang Gin等)编写程序,请参见创建Web函数。推荐您选择自定义运行时作为运行环境

image

任务函数

如果您想对函数发起异步调用,且需要追踪并保存异步调用各个阶段的状态,可以选择创建任务函数。任务函数默认开启任务模式,您可以使用任务模式提交、查看、停止和重试异步任务。详情参见创建任务函数。推荐您选择内置运行时作为运行环境

image

GPU函数

如果您想使用流行AI项目(Stable Diffusion WebUI、ComfyUI、RAG、TensorRT等)的容器镜像创建GPU实例,请使用GPU函数。具体操作,请参见创建GPU函数。GPU函数仅支持自定义容器运行环境。

image

相关文档