什么是函数工作流

FunctionGraph是一项基于事件驱动的函数托管计算服务。使用FunctionGraph函数,只需编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,函数以弹性、免运维、高可靠的方式运行。此外,按函数实际执行资源计费,不执行不产生费用。

①编写代码

用户编写业务代码,目前支持Node.js、Python、Java、Go、C#、PHP等语言。

②上传代码

目前支持在线编辑、上传ZIP或JAR包,从OBS引用ZIP包等。

③API和云产品事件源触发函数执行

通过RESTful API或者云产品事件源触发函数执行,生成函数实例,实现业务功能。

④弹性执行

函数在执行过程中,会根据请求量弹性扩容,支持请求峰值的执行,此过程用户无需配置,由FunctionGraph完成,并发数限制请参考约束与限制。

⑤查看日志

FunctionGraph函数实现了与云日志服务的对接,您无需配置,即可查看函数运行日志信息。

⑥查看监控

FunctionGraph函数实现了与云监控服务的对接,您无需配置,即可查看图形化监控信息。

⑦计费方式

函数执行结束后,根据函数请求执行次数和执行时间计费。

函数工作流有哪些功能

函数管理

提供控制台管理函数

函数支持Node.js、Java、Python、Go等多种运行时语言

函数支持多种代码导入方式

支持在线编辑代码、OBS文件引入、上传ZIP包、上传JAR包等方式。

触发器

函数多种类型触发器。

日志和监控

提供调用函数的监控指标和运行日志的采集和展示,实时的图形化监控指标展示,在线查询日志,方便用户查看函数运行状态和定位问题。

初始化功能

引入initializer接口:

分离初始化逻辑和请求处理逻辑,程序逻辑更清晰,让用户更易写出结构良好,性能更优的代码。

用户函数代码更新时,系统能够保证用户函数的平滑升级,规避应用层初始化冷启动带来的性能损耗。新的函数实例启动后能够自动执行用户的初始化逻辑,在初始化完成后再处理请求。

在应用负载上升,需要增加更多函数实例时,系统能够识别函数应用层初始化的开销,更准确的计算资源伸缩的时机和所需的资源量,让请求延时更加平稳。

函数流

函数流是用来编排FunctionGraph函数的工具,可以将多个函数编排成一个协调多个分布式函数任务执行的工作流。

用户通过在可视化的编排页面,将事件触发器、函数和流程控制器通过连线关联在一个流程图中,每个节点的输出作为连线下一个节点的输入。编排好的流程会按照流程图中设定好的顺序依次执行,执行成功后支持查看工作流的运行记录,方便您轻松地诊断和调试。

函数流功能特性和优势:

功能特性

函数可视化编排

函数流执行引擎

错误处理

可视化监控

优势

使用更少代码快速构建应用程序

函数流允许用户将函数组合编排成一个完整的应用程序,而无需进行代码编写。可以实现快速构建,快速上线。当业务调整时,可以快速调整流程,完成快速上线,无需编写任何代码。

完善的错误处理机制

支持对流程中发生的错误进行捕获和重试,用户可以进行灵活的异常处理。

可视化的编排和监控体验

通过拖拽进行流程编排,学习成本低,可以快速上手。

监控页面使用流程可视化的查看方式,可以做到快速识别问题位置。

统一插件开发和调试

CloudIDE支持(云上):

通过模板创建函数,在云端查看函数并下载到云,使用IDE在线调试,将函数推送到云端。

VSCode插件支持(云下):

通过模板创建函数,在云端查看函数并下载到本地调试,使用VSCode插件调试,将本地函数推送到云端。

HTTP函数

HTTP函数专注于优化 Web 服务场景,用户可以直接发送 HTTP 请求到 URL 触发函数执行。在函数创建编辑界面增加类型。HTTP函数只允许创建APIG/APIC的触发器类型,其他触发器不支持。

调用链

用户通过页面函数配置开启调用链,开启后可以链接到APM服务页面查看jvm、调用链等信息,当前仅支持JAVA函数。

自定义镜像

支持用户直接打包上传容器镜像,由平台加载并启动运行,调用方式与HTTP函数类似。与原来上传代码方式相比,用户可以使用自定义的代码包,不仅灵活也简化了用户的迁移成本。

函数类型

事件函数

概述

FunctionGraph支持事件类型函数。事件是指用于触发函数,通常为JSON格式的请求。用户作为事件源(事件的生产者),可以通过云服务平台或Cloud IDE触发函数并进行执行。在函数创建界面可以选择函数类型,事件类型的函数不受触发器类型的限制,当前FunctionGraph支持的所有类型触发器均可用于触发事件函数。

说明:FunctionGraph原生支持事件类型函数,在函数创建界面默认选择该类型;

测试函数时在参数配置界面输入用户指定的事件JSON即可完成函数触发;

用户也可以通过FunctionGraph支持的触发器进行事件函数触发;

优势

单机编程体验,简单易用

事件类型函数可以在FunctionGraph函数界面或Cloud IDE界面进行函数编辑或代码包上传,一键式完成函数云上部署,用户无需关心并处理函数的并发、故障恢复等问题。

高性能极速运行时

事件函数提供毫秒级函数启动、函数扩容、函数调用,秒级故障中断检测及秒级故障恢复。

便捷完备的工具链

提供完备的日志、调用链、debug及监控能力,支撑开发者“三步”上线函数应用。

限制

事件函数受限于事件格式(事件源),开发者在开发过程中需要遵循函数平台的函数开发规则。

HTTP函数

概述

FunctionGraph支持两种函数类型,事件函数和HTTP函数。HTTP函数专注于优化 Web 服务场景,用户可以直接发送 HTTP 请求到 URL 触发函数执行,从而使用自己的Web服务。HTTP函数只允许创建APIG/APIC的触发器类型,其他触发器不支持。

说明:HTTP函数支持HTTP/1.1协议。

在函数创建页面,新增一种函数类型“HTTP函数”;

HTTP函数执行入口需要设置为bootstrap,用户直接写启动命令,端口统一开放成8000;

若运行用户JAR包,bootstrap中建议增加JVM参数-Dfile.encoding=utf-8,否则可能会出现中文乱码。

优势

丰富的框架支持

您可以使用常见的 Web 框架(例如 Nodejs Web 框架:Express、Koa)编写 Web 函数,也可以将您本地的 Web 框架服务以极小的改造量快速迁移上云。

减少请求处理环节

函数可以直接接收并处理 HTTP 请求,API 网关不再需要做 json 格式转换,减少请求处理环节,提升 Web 服务性能。

编写体验舒适化

HTTP 函数的编写体验更贴近编写原生 Web 服务,可以使用 Node.js 原生接口,保证和本地开发服务体验一致。

限制

HTTP函数只允许创建APIG共享版、APIG专享版、APIC的触发器类型,其他触发器不支持。

同一个函数支持绑定多个 API 触发器,但所有 API 都必须在一个APIG服务下。

针对http函数,用户的http响应体不超过6M。

不支持长时运行和异步调用,不支持重试。

函数工作流 FunctionGraph 常见问题

函数工作流 FunctionGraph 常见问题

  • 使用FunctionGraph是否需要开通计算、存储、网络等服务?

    用户使用FunctionGraph时,不需要开通或者预配置计算、存储、网络等服务,由FunctionGraph提供和管理底层计算资源,包括服务器CPU、内存、网络和其他配置/资源维护、代码部署、弹性伸缩、负载均衡、安全升级、资源运行情况监控等,用户只需要按照FunctionGraph支持的编程语言提供程序包,上传即可运行。


  • 使用FunctionGraph开发程序之后是否需要部署?

    用户在本地开发程序之后打包,必须是ZIP包(Java、Node.js、Python、Go)或者JAR包(Java),上传至FunctionGraph即可运行,无需其它的部署操作。

    制作ZIP包的时候,单函数入口文件必须在根目录,保证解压后,直接出现函数执行入口文件,才能正常运行。

    对于Go runtime,必须在编译之后打zip包,编译后的动态库文件名称必须与函数执行入口的插件名称保持一致,例如:动态库名称为testplugin.so,则“函数执行入口”命名为testplugin.Handler。


  • FunctionGraph函数支持哪些编程语言?

    支持Node.js、Python、Java、Go、C#、PHP等语言


  • FunctionGraph函数分配磁盘空间有多少

    对于每个FunctionGraph函数分配了512MB临时存储空间,单个租户下最大允许部署包大小为10G


  • FunctionGraph函数支持哪些中文字体?

    FunctionGraph函数支持以下四种中文字体:

    NotoSansTC-Regular.otf

    NotoSerifTC-Regular.otf

    NotoSansSC-Regular.otf

    NotoSerifSC-Regular.otf


1对1咨询专属顾问

1对1免费咨询华为云专属顾问,为您量身定制产品推荐方案
立即咨询

华为云咨询电话:950808或4000-955-988 转1

华为云咨询电话:950808或4000-955-988 转1

华为云专业的服务团队,致力于为您提供专业的售前购买咨询服务,及完善的售后技术服务,助您云上无忧