【开发者空间实践指导】基于FunctionGraph实现Gif动图制作应用开发

举报
开发者空间小蜜蜂 发表于 2024/10/12 09:34:44 2024/10/12
【摘要】 本实验基于 FunctionGraph的 GIF动图制作工具。使用 API Gateway作为前端访问入口,通过 API Gateway触发器将用户的请求转发到 FunctionGraph中的GIF动图制作后端服务。使用该工具,用户可以上传自定义视频,然后设置截取时长进行 GIF动图生成。

一、案例介绍

本实验是一个基于 FunctionGraph的 GIF动图制作工具。使用 API Gateway作为前端访问入口,通过 API Gateway触发器将用户的请求转发到 FunctionGraph中的GIF动图制作后端服务。使用该工具,用户可以上传自定义视频,然后设置截取时长进行 GIF动图生成。

二、免费领取云主机

如您还没有云主机,可点击链接 ,根据领取指南进行操作。

如您已领取云主机,可直接开始实验。

三、实验流程

说明:

① 安装FunctionGraph插件;

② 使用FunctionGraph插件创建函数;

③ 在CodeArts IDE修改函数;

④ 使用FunctionGraph插件部署函数;

⑤ 给FunctionGraph函数添加依赖包;

⑥ 给FunctionGraph函数创建APIG触发器;

⑦ 使用浏览器访问GIF动图应用。

四、安装包下载

下载应用源码到云主机,复制链接在浏览器中打开并下载。

https://functiongraph-test-code.obs.cn-north-4.myhuaweicloud.com/%E9%99%84%E4%BB%B61%EF%BC%9Affmpeg-gif.zip

五、GIF动图制作应用开发部署

5.1 安装FunctionGraph插件

方式一:在线安装

进入云主机 ,打开CodeArts IDE,打开CodeArts IDE for java/python(以下统称为CodeArts IDE),点击右上角登录个人华为云账号,登录后,点击右侧“扩展”搜索“CodeArts FunctionGraph”点击安装该插件。

方式二:本地安装

前往鲲鹏社区官网下载插件CodeArts FunctionGraph到云主机,下载地址为:CodeArts IDE插件市场

在云主机桌面,打开CodeArts IDE开发环境,单击右侧“扩展”按钮,点击从本地安装,选择下载好的插件安装。

5.2 创建函数

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

模板选择Hello World。

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

函数路径可以自由选择云主机上的文件夹。

创建好函数之后,打开“工程“菜单可以看到刚创建的函数内容:


5.3 修改函数

将制作GIF动画应用代码复制到刚创建的函数,函数文件在下的资料包中获取,可以直接采用拖拽的方式复制,同名的文件直接“替换”即可。

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

5.4 部署函数

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

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

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

部署成功后,可以在FunctionGraph插件中查看到刚部署的函数:gif_gen_demo。右键单击gif_gen_demo选择在浏览器打开函数详情页,如果浏览器没有登录会提示先登录。

14.png

浏览器查看函数详情页如下。

15.png

5.5 添加函数依赖包

在函数详情页点击左上角函数名称左边的“<”返回到函数列表界面,然后进入“函数-依赖包管理”界面,也可以直接跳转

16.png


单击“添加依赖包”,依赖信息填写如下:

依赖包名称

用户自定义

依赖包名称,自定以及可,可用:flask-ffmpeg-dep

代码上传方式

OBS上传文件

zip文件大于10M,不支“上传ZIP文件”方式

OBS链接URL

https://functiongraph-test-code.obs.cn-north-4.myhuaweicloud.com/flask-ffmpeg.zip

提供的是北京四的桶域名下载地址,在其他区域使用该地址会报找不到资源错误

运行时

Python 3.6

运行时语言及版本


回到函数详情页面,下拉到页面底部,点击“添加依赖包”,选择刚刚创建的依赖包并确定。

18.png

19.png

5.6 创建触发器

gif_gen_demo函数详情界面,点击 创建触发器,触发器配置参考如下,分组没有的话可以点击创建分组进行创建API分组,点击确定创建

20.png

没有“分组”,创建“分组”

21.png

回到创建触发器界面,刷新分组,选择新建的分组,其他内容填写如下:

发布环境

RELEASE

正式发布API的环境,这里选择默认的线上环境

安全认证

None

开启无认证模式,所有用户均可直接访问

请求协议

HTTPS

APIG触发器调用URL的请求协议

后端超时

60000

后端超时时间,单位毫秒,设置为最大值,避免网络等其他因素影响执行效果


5.7 访问制作GIF动图应用

复制触发器“调用URL”浏览器访问制作GIF动图应用,可以使用下载的资料包中的demo视频进行测试。

点击“选择视频”选择资料包中提供的demo视频,设置截取的开始时间、截取时长,然后点击“开始制作”,完成GIF动图生成。

制作完成后可以下拉页面获取GIF动图。

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。