函数管理
提供控制台管理函数。
- 函数支持Node.js、Java、Python、Go等多种运行时语言,同时支持用户自定义运行时,说明如下表所示。
说明建议使用相关语言的最新版本。
表 运行时语言说明
运行时语言 | 支持版本 |
---|---|
Node.js | 6.10、8.10、10.16、12.13、14.18、16.17、18.15 |
Python | 2.7、3.6、3.9、3.10 |
Java | 8.0、11 |
Go | 1.x、1.8 |
C# | .NET Core 2.0、.NET Core 2.1、.NET Core 3.1 |
PHP | 7.3 |
定制运行时 | - |
- 函数支持多种代码导入方式
支持在线编辑代码、OBS文件引入、上传ZIP包等方式。不同运行时支持的代码上传方式如下表所示。
表 代码上传方式说明
运行时 | 在线编辑 | 上传ZIP文件 | 上传JAR包 | 从OBS上传文件 |
---|---|---|---|---|
Node.js | 支持 | 支持 | 不支持 | 支持 |
Python | 支持 | 支持 | 不支持 | 支持 |
Java | 不支持 | 支持 | 支持 | 支持 |
Go | 不支持 | 支持 | 不支持 | 支持 |
C# | 不支持 | 支持 | 不支持 | 支持 |
PHP | 支持 | 支持 | 不支持 | 支持 |
定制运行时 | 支持 | 支持 | 不支持 | 支持 |
日志和监控
提供调用函数的监控指标和运行日志的采集和展示,实时的图形化监控指标展示,在线查询日志,方便用户查看函数运行状态和定位问题。
初始化功能
引入initializer接口:
- 分离初始化逻辑和请求处理逻辑,程序逻辑更清晰,让用户更易写出结构良好,性能更优的代码。
- 用户函数代码更新时,系统能够保证用户函数的平滑升级,规避应用层初始化冷启动带来的性能损耗。新的函数实例启动后能够自动执行用户的初始化逻辑,在初始化完成后再处理请求。
- 在应用负载上升,需要增加更多函数实例时,系统能够识别函数应用层初始化的开销,更精准的计算资源伸缩的时机和所需的资源量,让请求延时更加平稳。
函数流
函数流是用来编排FunctionGraph函数的工具,可以将多个函数编排成一个协调多个分布式函数任务执行的工作流。
用户通过在可视化的编排页面,将事件触发器、函数和流程控制器通过连线关联在一个流程图中,每个节点的输出作为连线下一个节点的输入。编排好的流程会按照流程图中设定好的顺序依次执行,执行成功后支持查看工作流的运行记录,方便您轻松地诊断和调试。
函数流功能特性和优势:
-
功能特性
- 函数可视化编排
- 函数流执行引擎
- 错误处理
- 可视化监控
-
优势
- 使用更少代码快速构建应用程序函数流允许用户将函数组合编排成一个完整的应用程序,而无需进行代码编写。可以实现快速构建,快速上线。当业务调整时,可以快速调整流程,完成快速上线,无需编写任何代码。
- 完善的错误处理机制。支持对流程中发生的错误进行捕获和重试,用户可以进行灵活的异常处理。
- 可视化的编排和监控体验。通过拖拽进行流程编排,学习成本低,可以快速上手。监控页面使用流程可视化的查看方式,可以做到快速识别问题位置。
HTTP函数
HTTP函数专注于优化 Web 服务场景,用户可以直接发送 HTTP 请求到 URL 触发函数执行。在函数创建编辑界面增加类型。HTTP函数只允许创建APIG/APIC的触发器类型,其他触发器不支持。
自定义镜像
支持用户直接打包上传容器镜像,由平台加载并启动运行,调用方式与HTTP函数类似。与原本上传代码方式相比,用户可以使用自定义的代码包,不仅灵活也简化了用户的迁移成本。