更新时间:2025-08-14 GMT+08:00
分享

函数类型选型

本文介绍函数工作流支持的函数类型的适用场景及差异,供您进行函数类型选型。

函数选型建议

为满足不同场景下的用户需求,函数工作流支持通过在线编写代码、上传代码文件或者使用容器镜像,创建事件函数和HTTP函数,且支持使用GPU计算资源。

在使用函数工作流时,可以根据业务场景和技术栈偏好,选择合适的函数类型和运行时。常见应用场景的函数选型建议请参考表1

表1 函数选型建议

应用场景

函数选型建议

说明

Web应用和API服务

使用代码创建HTTP函数

HTTP函数支持主流Web应用框架,可以通过浏览器访问,或由URL直接调用。

文件处理和数据流处理

结合内置运行时创建事件函数

事件函数可以配置事件触发,集成了多种华为云产品(如对象存储服务OBS、分布式消息服务 RabbitMQ 版、云日志服务LTS等)。

Chatbot和文生图等模型推理场景

结合自定义镜像创建HTTP函数启用GPU

使用基于流行AI项目(如Stable Diffusion、ComfyUI、Ollama等)的容器镜像创建HTTP函数,启用GPU快速构建AI模型推理服务。

定时任务和音视频转码等异步任务场景

结合内置运行时创建事件函数

事件函数可以配置事件触发,能够通过特定事件或定时触发来调用关联函数。

函数类型选型分析

关于事件函数与HTTP函数的具体分析,请参考表2

表2 函数类型选型分析

对比项

事件函数

HTTP函数

功能

用于处理文件和数据流,可以通过各类云产品的事件触发(如基于EG的OBS应用事件源触发器Kafka触发器LTS触发器等),以及用于处理异步请求,能够追踪并保存每个异步调用的状态。

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

适用场景

  • 云产品集成: OBS实时文件处理、LTS日志加工等。
  • ETL数据加工:数据库数据清洗、消息队列处理等。
  • 常规任务:定时任务、周期任务、脚本任务等。
  • 多媒体处理:音视频转码、直播录制、图片加工等。
  • 快速构建流行Web框架应用:Express、Flask等。
  • 快速构建AI模型推理服务:如Stable Diffusion、ComfyUI、Ollama等。
  • 迁移已有的应用:HTML5网站、REST API、BFF、移动APP、小程序、游戏结算等。

运行环境

推荐使用内置运行时

推荐使用定制运行时自定义镜像

函数运行环境选型分析

关于函数运行环境的具体分析,请参考表3

表3 函数运行环境选型分析

对比项

内置运行时

定制运行时

自定义镜像

开发流程

根据函数工作流定义的函数执行入口编写请求处理程序。

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

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

支持的实例类型

CPU实例

CPU实例和GPU实例

CPU实例和GPU实例

单实例多并发

不支持

支持

支持

冷启动

最快。

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

较快。

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

较慢。

需要拉取镜像,因此冷启动较慢。

代码文件大小限制

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

未解压的镜像大小不超过10 GB。

代码文件格式

ZIP、JAR(Java)

容器镜像

支持的编程语言

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

无限制

无限制

通过控制台创建函数

通过函数工作流控制台,支持创建以下函数。

如果想通过特定事件或定时触发来调用关联函数,可通过函数工作流控制台,如图1所示创建事件函数,推荐选择内置运行时作为运行环境。具体操作步骤,请参考创建事件函数

图1 创建事件函数

如果想基于各个语言的流行框架编写程序,可通过函数工作流控制台如图2所示创建HTTP函数,推荐选择定制运行时作为运行环境。具体操作步骤,请参考创建HTTP函数

图2 创建HTTP函数

如果想使用流行AI项目(Stable Diffusion WebUI、ComfyUI、Ollama等)的容器镜像,可通过函数工作流控制台创建GPU实例,如图3所示使用容器镜像创建HTTP函数。具体操作步骤,请参见创建GPU函数

图3 创建GPU函数

FunctionGraph提供多种场景的函数模板,在使用函数模板创建函数时,能够实现代码与环境变量的自动填充,快速构建函数应用。如您的需求可由函数模板满足,如图4所示,可以选择使用函数模板创建函数

图4 使用模板创建函数

相关文档