1 概述
1.1 案例介绍
函数工作流FunctionGraph是一项基于事件驱动的函数托管计算服务,只需要编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,即可使函数以弹性、免运维、高可靠的方式运行,开发者无需过多关注底层资源的管理,大大提高了开发效率。
本案例选择制作Gif动图作为示例,并借助开发者空间提供的免费CodeArts IDE编辑器和插件进行本地编辑函数、轻松部署上云,直观地展示 FunctionGraph 支持统一插件云上云下的开发与调试能力和实际应用开发中为开发者带来的便利。
通过实际操作,让大家深入了解如何利用 FunctionGraph 开发并部署一个Gig动图制作应用。在这个过程中,大家将学习到从函数创建、插件安装到应用部署以及与 API 网关集成等一系列关键步骤,从而掌握 FunctionGraph 的基本使用方法,体验其在应用开发中的优势。
1.2 适用对象
- 企业
- 个人开发者
- 高校学生
1.3 案例时间
本案例总时长预计30分钟。
1.4 案例流程
{{{width="70%" height="auto"}}}
说明:
- 安装FunctionGraph插件;
- 使用FunctionGraph插件创建函数;
- 在CodeArts IDE修改函数;
- 使用开发者空间云函数部署函数;
- 给FunctionGraph函数添加依赖包;
- 给FunctionGraph函数创建APIG触发器;
- 使用浏览器访问GIF动图应用。
1.5 资源总览
本案例预计花费7.26元。体验完成后请及时释放资源,避免产生多余的费用。
| 资源名称 | 规格 | 单价(元) | 时长(分钟) |
|---|---|---|---|
| 华为开发者空间-云主机 | 鲲鹏 | 4 vCPUs 8GB | Ubuntu 24.04 Server 定制版 | 免费 | 30 |
| 弹性公网IP | 按流量计费 5Mbit/s | 2.5元/GB | 30 |
| 开发平台-云函数 | 免费 | 免费 | 30 |
| API网关服务(APIG专享版)实例 | 专享版 | 4.76/h | 30 |
2 FunctionGraph函数创建
2.1 开发者空间配置
面向广大开发者群体,华为开发者空间提供一个随时访问的“开发桌面云主机”、丰富的“预配置工具集合”和灵活使用的“场景化资源池”,开发者开箱即用,快速体验华为根技术和资源。
如果还没有领取开发者空间云主机,可以参考免费领取云主机文档领取。
领取云主机后可以直接进入华为开发者空间工作台界面,点击打开云主机 > 进入桌面连接云主机。


2.2 开发平台创建云函数
在华为开发者空间主页点击左侧开发平台->云函数->创建云函数。

从空白模板创建->函数名字输入:demo->立即创建,创建完毕后可以在函数列表中看到。


2.3 开发者空间CodeArts IDE创建函数
打开开发者空间云主机桌面CodeArts IDE for Python。

右侧扩展下载FunctionGraph函数插件。

下载完毕后,在CodeArts IDE侧边工具栏找到FunctionGraph插件并打开,在插件中创建函数,选择HTTP函数。

模板选择Hello World。

函数名称可以设置为:gif_gen_demo。

路径可以选择自由选择开发者空间云主机中的文件夹。

创建好函数之后,打开“资源管理器”菜单可以看到刚创建好的函数内容。

2.4 函数代码修改
请前往以下地址进行函数代码下载,下载完毕后,点击前往下载文件所在地。

打开下载文件夹后,在空白处鼠标右击打开终端,并输入以下命令进行压缩包解压。
unzip gif_gen_code_demo.zip


解压完毕后,将代码复制到创建的函数目录下,可以直接采用托拽的方式复制,同名的文件直接“替换”即可。

tamplates/index.html是GIF动图工具前端页面;
app.py为GIF动图工具后端逻辑方法,依赖FFmpeg实现动图生成;
bootstrap为函数执行入口;
template.yml是函数配置文件,函数部署成功后,可以函数详情页面找到对应的配置信息。
这里需要将函数内存规格设置为512M。由于函数调用过程中、运行时会解析和缓存传入的event事件,这部分操作会消耗额外的内存,为避免函数实际使用时内存过大而触发OOM,所以将template.yml中MemorySize改为512。

2.5 部署函数
打开FunctionGraph插件,点击“...”,选择“部署函数”,选择创建好的函数:gif_gen_demo。

部署区域选择华北-北京四。
注意:选择部署在FunctionGraph插件支持区域也可以,但实验文档中提供的依赖包地址是北京四的桶域名地址,且依赖包大小超过了10M,无法通过“上传ZIP文件”方式上传依赖包。此时,您只能先将依赖包下载到本地,然后自己创建对应区域的OBS桶并将依赖包上传到自己桶里再创建依赖包,会产生额外费用。直接部署在北京四可以避免以上问题。

部署成功后,可以再FunctionGraph插件中查看到刚部署的函数:gif_gen_demo。
返回开发平台,点击步骤2.2创建好的demo函数,点击左上角地区,更换为华北-北京四。

切换到华北-北京四后,可以看到在IDE中部在北京四的gif_gen_demo函数。

点击函数名称进入函数详细页面,鼠标滚轮往下滑找到添加依赖包。

依赖包信息如下:
| 依赖包名称 | gif_test |
|---|---|
| 运行时 | Python 3.6 |
| 上传方式 | 从OBS上传文件 |
| 描述 | 无 |

随后将创建好的依赖包进行添加即可。

3 APIG触发器配置
3.1 创建VPC
虚拟私有云(Virtual Private Cloud,VPC)是您在云上的私有网络,为云服务器、云容器、云数据库等云上资源构建隔离、私密的虚拟网络环境。VPC丰富的功能帮助您灵活管理云上网络,包括创建子网、设置安全组和网络ACL、管理路由表等。此外,您可以通过弹性公网IP连通云内VPC和公网网络,通过云专线、虚拟专用网络等连通云内VPC和线下数据中心,构建混合云网络,灵活整合资源。如果当前没有可用的个人VPC,可以先创建VPC。
在控制台搜索栏中搜索VPC,跳转至VPC控制台。

点击右上角创建虚拟私有云,私有云默认配置即可。

3.2 创建触发器
返回函数详细页面,点击创建触发器。

触发器类型选择APIG专享版,若已有实例,选择即可,若无实例点击创建实例。
创建实例配置如下:
| 参数名 | 参数值 |
|---|---|
| 计费模式 | 按需计费 |
| 区域 | 华北-北京四 |
| 可用区 | 默认 |
| 实例名称 | 自定义 |
| 实例规格 | 基础版 |
| 可维护时间窗 | 默认 |
| 公网入口/如公网宽带 | 打开/5 |
| 公网出口/出公网宽带 | 打开/5 |
| 网络 | 步骤3.1创建的VPC |
| 安全组 | 已有安全组即可 |

确认完配置后点击去支付即可。(注意:创建APIG实例需要十分钟左右请耐心等待)

创建完成后,返回配置触发器页面,进行配置,详细配置如下:
配置完成后点击确定即可。
| 参数名 | 参数值 |
|---|---|
| 触发器类型 | API网关服务(APIG专享版) |
| 实例 | 步骤3.2创建的触发器实例 |
| API名称 | 自定义 |
| 分组、发布环境 | 选择实例后自动补齐 |
| 安全认证 | None |
| 请求协议 | HTTPS |
| 请求方法 | ANY |
| 后端超时(毫秒) | 60000 |

4 Gif动图功能实现
4.1 函数代码上传
为避免运行失败,需再次上传函数代码,点击左侧代码字样返回代码详细页面。

点击右侧上传代码->OBS上传,将以下地址复制到文本框中:
https://dtse-mirrors.obs.cn-north-4.myhuaweicloud.com/FG/gif_gen_code_demo.zip,复制完成后点击确定即可。


4.2 GIF动图制作
上传完毕后,返回设置界面。

将函数的调用URL复制到浏览器中,进行GIF动图制作,测试视频前往以下地址进行下载。
将测试视频上传后点击开始制作,制作完毕后鼠标滚轮下滑即可看到制作的GIF动图。

至此,基于FunctionGraph的Gif动图制作应用开发部署完成。
5 释放资源
5.1 删除APIG实例
在华为云控制台,进入APIG实例管理页面,删除APIG实例。

5.2 删除VPC虚拟私有云实例
在华为云控制台搜索VPC,进入VPC控制台。

点击右侧删除->一键输入->删除。

至此,所需资源删除完毕。
6万+

被折叠的 条评论
为什么被折叠?



