基于FunctionGraph构建Gif动图制作应用

1 概述

1.1 案例介绍

函数工作流FunctionGraph是一项基于事件驱动的函数托管计算服务,只需要编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,即可使函数以弹性、免运维、高可靠的方式运行,开发者无需过多关注底层资源的管理,大大提高了开发效率。

本案例选择制作Gif动图作为示例,并借助开发者空间提供的免费CodeArts IDE编辑器和插件进行本地编辑函数、轻松部署上云,直观地展示 FunctionGraph 支持统一插件云上云下的开发与调试能力和实际应用开发中为开发者带来的便利。

通过实际操作,让大家深入了解如何利用 FunctionGraph 开发并部署一个Gig动图制作应用。在这个过程中,大家将学习到从函数创建、插件安装到应用部署以及与 API 网关集成等一系列关键步骤,从而掌握 FunctionGraph 的基本使用方法,体验其在应用开发中的优势。

1.2 适用对象

  • 企业
  • 个人开发者
  • 高校学生

1.3 案例时间

本案例总时长预计30分钟。

1.4 案例流程

63f34e6d4b09e4bed1580f272ed40d7a.png{{{width="70%" height="auto"}}}

说明:

  1. 安装FunctionGraph插件;
  2. 使用FunctionGraph插件创建函数;
  3. 在CodeArts IDE修改函数;
  4. 使用开发者空间云函数部署函数;
  5. 给FunctionGraph函数添加依赖包;
  6. 给FunctionGraph函数创建APIG触发器;
  7. 使用浏览器访问GIF动图应用。

1.5 资源总览

本案例预计花费7.26元。体验完成后请及时释放资源,避免产生多余的费用。

资源名称规格单价(元)时长(分钟)
华为开发者空间-云主机鲲鹏 | 4 vCPUs 8GB | Ubuntu 24.04 Server 定制版免费30
弹性公网IP按流量计费 5Mbit/s2.5元/GB30
开发平台-云函数免费免费30
API网关服务(APIG专享版)实例专享版4.76/h30

2 FunctionGraph函数创建

2.1 开发者空间配置

面向广大开发者群体,华为开发者空间提供一个随时访问的“开发桌面云主机”、丰富的“预配置工具集合”和灵活使用的“场景化资源池”,开发者开箱即用,快速体验华为根技术和资源。

如果还没有领取开发者空间云主机,可以参考免费领取云主机文档领取。

领取云主机后可以直接进入华为开发者空间工作台界面,点击打开云主机 > 进入桌面连接云主机。

a1aae6ff53aac98855ef597dd6899967.png

552fc96c3b58a06e294e4a760ae719e3.PNG

2.2 开发平台创建云函数

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

b5e8d957ea76218a5ddbe9ce112bc70b.PNG

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

3b8d58d0c8138541b58eb4dd21ae4296.PNG

22f19154a0532f156d5c959a44760c86.PNG

2.3 开发者空间CodeArts IDE创建函数

打开开发者空间云主机桌面CodeArts IDE for Python。

9dc99d6ef4a675ee5684aae55c00a162.PNG

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

d15afe74513a116fb7167b6a843253c7.PNG

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

48218466dc0f71ac7336eb5cf3118b53.PNG

模板选择Hello World

b73df4111df1d8af8fd0aa5d6cda1cd0.PNG

函数名称可以设置为:gif_gen_demo

59d59882901d0d4ba3a5b59f5383ec93.PNG

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

33d25b32e9afffe81aa2366c3cade868.PNG

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

221af4058ca91d80ae9bd1549da76ba8.PNG

2.4 函数代码修改

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

32c318a8237908736ba9991298e8d89c.PNG

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

unzip gif_gen_code_demo.zip

4720382599677284980e1ae8af03a66b.PNG

257fca35ddb2d9e0494a905e40a53ab2.PNG

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

9f543f9350238b077a835fe3541cb79c.PNG

tamplates/index.html是GIF动图工具前端页面;

app.py为GIF动图工具后端逻辑方法,依赖FFmpeg实现动图生成;

bootstrap为函数执行入口;

template.yml是函数配置文件,函数部署成功后,可以函数详情页面找到对应的配置信息。

这里需要将函数内存规格设置为512M。由于函数调用过程中、运行时会解析和缓存传入的event事件,这部分操作会消耗额外的内存,为避免函数实际使用时内存过大而触发OOM,所以将template.yml中MemorySize改为512。

556155e1fa3afdfadaf5a3a7cac01830.PNG

2.5 部署函数

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

75143bfcece1792bb9c8ad0611b772d0.PNG

部署区域选择华北-北京四。

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

274346382b8e6a01051219738709aee8.PNG

部署成功后,可以再FunctionGraph插件中查看到刚部署的函数:gif_gen_demo。

返回开发平台,点击步骤2.2创建好的demo函数,点击左上角地区,更换为华北-北京四

77c33d68b65646c20890f1d0efd065f8.PNG

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

10f6c9c09249b2d081e51dbaf8c26566.PNG

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

000a9f0420f5c0bdf460eb9268f93c22.PNG

依赖包信息如下:

依赖包名称gif_test
运行时Python 3.6
上传方式从OBS上传文件
描述

77d8311b1847adf3f20408ac89c80af5.PNG

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

07667ae970440b5947fb63e2314e6eea.PNG

3 APIG触发器配置

3.1 创建VPC

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

在控制台搜索栏中搜索VPC,跳转至VPC控制台

6466d6417d1a66a0b0a424cccc212db3.PNG

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

8a117061c13d32a7608776fdb3b6a15e.PNG

3.2 创建触发器

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

37474722dd1a434b15c2c43096614318.PNG

触发器类型选择APIG专享版,若已有实例,选择即可,若无实例点击创建实例

创建实例配置如下:

参数名参数值
计费模式按需计费
区域华北-北京四
可用区默认
实例名称自定义
实例规格基础版
可维护时间窗默认
公网入口/如公网宽带打开/5
公网出口/出公网宽带打开/5
网络步骤3.1创建的VPC
安全组已有安全组即可

4dc455e53814ad80541a5b2d18e5e588.PNG

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

897423145a167a50dbb258e91bd17e3c.PNG

创建完成后,返回配置触发器页面,进行配置,详细配置如下:

配置完成后点击确定即可。

参数名参数值
触发器类型API网关服务(APIG专享版)
实例步骤3.2创建的触发器实例
API名称自定义
分组、发布环境选择实例后自动补齐
安全认证None
请求协议HTTPS
请求方法ANY
后端超时(毫秒)60000

815a8a765f1c1db92a5cc2ea838abd0a.PNG

4 Gif动图功能实现

4.1 函数代码上传

为避免运行失败,需再次上传函数代码,点击左侧代码字样返回代码详细页面。

94ffd4e603f8b96c52cabe0285fcfc02.PNG

点击右侧上传代码->OBS上传,将以下地址复制到文本框中:

https://dtse-mirrors.obs.cn-north-4.myhuaweicloud.com/FG/gif_gen_code_demo.zip,复制完成后点击确定即可。

edd3b21071f660c1bee277563c5d9b9b.PNG

c3ae6d8367bb2a2ac6d8ba9665212a72.PNG

4.2 GIF动图制作

上传完毕后,返回设置界面。

bc8981e5af4ecc4d1bdb61e0f800465d.PNG

将函数的调用URL复制到浏览器中,进行GIF动图制作,测试视频前往以下地址进行下载。

将测试视频上传后点击开始制作,制作完毕后鼠标滚轮下滑即可看到制作的GIF动图。

6d4bccda63f8b60c46e1d0f1cc587dec.PNG

至此,基于FunctionGraph的Gif动图制作应用开发部署完成。

5 释放资源

5.1 删除APIG实例

在华为云控制台,进入APIG实例管理页面,删除APIG实例。

ef79f74a85b65e425539d27b38be4617.PNG

5.2 删除VPC虚拟私有云实例

在华为云控制台搜索VPC,进入VPC控制台。

58bc2cc5924894bc08588a571c36f822.PNG

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

72b15e80076b941495c303afad9bbd71.PNG

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值