为满足不同场景下的用户需求,函数计算提供事件函数、Web函数和任务函数的创建方式。本文介绍函数计算支持的创建函数方式的适用场景及差异,供您进行技术选型。
选型分析
对比项 | 事件函数 | Web函数 | 任务函数 | |
适用场景 | 按照函数计算定义的接口编写程序处理事件。 | 基于各个语言的流行框架(Java SpringBoot、Node.js Express、Python Flask、Golang Gin等)编写程序,或者迁移已有的框架应用。 | 容器镜像
| 对函数发起异步调用,且需要追踪并保存异步调用各个阶段的状态,可以选择创建任务函数。任务函数默认开启任务模式,您可以使用任务模式提交、查看、停止和重试异步任务。 |
冷启动 | 最快。代码包中不包含运行时,所以冷启动最快。 | 较快。Web函数使用公共镜像,没有镜像拉取时间,所以冷启动会较快。 | 较慢。需要拉取镜像,所以冷启动较慢。 | 最快。代码包中不包含运行时,所以冷启动最快。 |
代码包限制 | 500 MB未解压代码包 | 500 MB未解压代码包 | 10 GB未解压镜像 | 500 MB未解压代码包 |
代码包格式 | ZIP、JAR(Java)、文件夹 | ZIP、JAR(Java)、文件夹 | ZIP、JAR(Java)、文件夹 | |
是否支持GPU实例 | 不支持 | 不支持 | 支持 | 不支持 |
运行时环境 | Node.js、Python、PHP、Java、.NET Core 、Go | 无限制 | 无限制 | Node.js、Python、PHP、Java、.NET Core 、Go |
函数创建方式介绍
事件函数
如果您想按照函数计算定义的接口编写程序处理事件,请选择事件函数。具体操作,请参见创建事件函数。
Web函数
如果您想基于各个语言的流行框架(Java SpringBoot、Node.js Express、Python Flask、Golang Gin等)编写程序、自定义容器镜像,或者迁移已有的框架应用,请选择Web函数。具体操作,请参见创建Web函数。
任务函数
如果您想对函数发起异步调用,且需要追踪并保存异步调用各个阶段的状态,可以选择创建任务函数。任务函数默认开启任务模式,您可以使用任务模式提交、查看、停止和重试异步任务。详情参见创建任务函数。