函数选型

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

选型分析

函数类型选型

对比项

事件函数

Web函数

任务函数

GPU函数

功能

用于处理文件和事件流,可以通过各类云产品的事件触发(如OSS触发器Kafka触发器SLS触发器等)。

支持流行的Web应用框架,可以通过浏览器访问,或通过URL调用。

用于处理异步请求,能够追踪并保存异步调用各个阶段的状态。

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

适用场景

  • 云产品集成:OSS实时文件处理、SLS日志加工等。

  • ETL数据加工:数据库数据清洗、消息队列处理等。

  • 快速构建流行Web框架应用SpringBootExpressFlask等。

  • 迁移已有的应用:HTML5网站、REST API、BFF、移动APP、小程序、游戏结算等。

  • 常规任务:定时任务、周期任务、脚本任务等。

  • 多媒体处理:音视频转码、直播录制、图片加工等。

  • 传统在线推理:CV视觉识别、NLP语言处理等。

  • AIGC模型推理:文生文、文生图、文生音频等。

运行时环境

推荐使用内置运行时

推荐使用自定义运行时

推荐使用内置运行时

仅支持自定义镜像

异步任务

默认关闭

默认关闭

默认开启

默认关闭

函数运行环境选型

对比项

内置运行时

自定义运行时

自定义镜像

开发流程

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

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

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

支持的实例类型

CPU实例

CPU实例

CPU实例和GPU实例

单实例多并发

不支持

支持

支持

冷启动

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

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

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

代码交付物大小限制

代码包大小不超过100 MB500 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

相关文档