函数存储选型
本文介绍函数工作流支持的存储类型的适用场景及差异,供您进行函数存储选型。
函数存储选型分析
为了满足业务存储和访问文件的诉求,函数工作流提供丰富的存储类型,包括弹性云服务器ECS、高性能弹性文件服务SFS Turbo、对象存储服务OBS、临时存储和函数依赖包。具体的存储选型对比分析请参考表1。
对比项 |
弹性云服务器 ECS |
高性能弹性文件服务 SFS Turbo |
对象存储服务 OBS |
临时存储 |
函数依赖包 |
---|---|---|---|---|---|
适用场景 |
日志、业务文件存储 |
日志、业务文件存储 |
日志、业务文件存储 |
业务产生的临时文件 |
公共依赖库、运行时环境及函数扩展等发布与部署 |
最大空间 |
可扩展 |
弹性 |
弹性 |
默认情况下为512MB,可以自行调整为最大10GB。 |
300 MB |
持久性 |
持久 |
持久 |
持久 |
临时存储 |
持久 |
调用间共享 |
是 |
是 |
是 |
否 |
是 |
存储内容 |
可写 |
可写 |
可写 |
可写 |
不可写 |
存储类型 |
文件系统 |
文件系统 |
对象 |
文件系统 |
代码依赖归档 |
事件源集成 |
否 |
否 |
是 |
否 |
否 |
函数访问速度 |
较快 |
较快 |
快 |
最快 |
快 |
计费 |
硬盘规格≤512 MB时免费,具体见计费项 |
不计费 |
存储类型介绍
函数工作流支持的存储类型具体介绍如下。
弹性云服务器(Elastic Cloud Server,ECS)可以通过启动NFS文件服务对外提供安全、高性能、高可靠、简单易用的文件存储服务。
华为云函数工作流支持与弹性云服务器ECS无缝集成,支持为函数配置挂载ECS的共享路径。配置成功后,函数可以像访问本地文件系统一样访问指定的ECS共享路径。
使用ECS作为函数挂载的优势如下:
- 可以将临时文件存储到ECS共享路径中,临时文件大小不受实例本地磁盘空间限制。
- 多个函数可以共用一个ECS共享路径,实现文件共享。
具体挂载操作,请参见扩展函数的存储空间。
高性能弹性文件服务(Scalable File Service Turbo,SFS Turbo)提供按需扩展的高性能文件存储(NAS),可为云上多个弹性云服务器(ECS)、容器(CCE&CCI)、裸金属服务器(BMS)提供共享访问。
华为云函数工作流支持与高性能弹性文件服务SFS Turbo无缝集成,支持为函数挂载SFS Turbo文件系统。配置成功后,函数可以像访问本地文件系统一样访问指定的文件系统。
使用SFS Turbo作为函数挂载的优势如下:
- 可以将临时文件存储到SFS Turbo文件系统中,临时文件大小不受实例本地磁盘空间限制。
- 多个函数可以共用一个SFS Turbo文件系统,实现文件共享。
具体挂载操作,请参见扩展函数的存储空间。
对象存储服务(Object Storage Service,OBS)提供海量、安全、高可靠且低成本的数据存储能力,支持存储任意类型和大小的数据。适用于企业备份、归档、视频点播、视频监控等多种数据存储场景。
函数工作流与OBS能够通过基于EventGrid(EG)的OBS事件源触发器实现无缝集成,可以编写函数对OBS事件进行自定义处理,例如能够调用多种函数处理图像或音频数据,并将处理结果写入不同类型存储服务中。您只需专注于编写函数逻辑,系统将以实时、可靠的大规模并行方式处理海量数据。
具体使用操作,请参见使用EventGrid触发器(OBS应用事件源)。也支持在函数代码中,使用OBS对应语言的SDK工具实现对OBS的读写处理。
函数工作流提供两种临时存储规格,分别为512MB和10GB。
临时存储空间的生命周期与底层执行函数的实例相同。若持续有请求,实例将保持存在,因此先前存储于磁盘的数据仍将保留。若函数在长时间内未收到请求,系统将回收该实例,此时磁盘上的数据将随之消失。
函数依赖包包含支持函数业务代码运行的公共库,可以将代码所需的公共库封装成依赖包进行单独管理,便于多函数共享,同时也能有效缩减函数代码在部署与更新过程中的体积。
关于函数依赖包的操作和使用限制,请参见函数依赖包概述。