函数计算驱动多媒体文件处理:高效、稳定与成本优化实践

本文涉及的产品
对象存储 OSS,20GB 3个月
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: 本次测评的解决方案《告别资源瓶颈,函数计算驱动多媒体文件处理》展示了如何利用阿里云函数计算高效处理多媒体文件。文档结构清晰、内容详实,适合新客户参考。方案提供了一键部署与手动部署两种方式,前者简便快捷,后者灵活性高但步骤较多。通过部署,用户可体验到基于函数计算的文件处理服务,显著提升处理效率和系统稳定性。此外,测评还对比了应用内处理文件与函数计算处理文件的不同,突出了函数计算在资源管理和成本控制方面的优势。

引言

又到了一周一次的解决方案测评频道了,本次测评的主题是《告别资源瓶颈,函数计算驱动多媒体文件处理》,测评地址如下:https://developer.aliyun.com/topic/fc-drive-file

image.png

废话不多说,下面我们就一起来看看解决方案吧!

函数计算驱动多媒体文件处理

解决方案

具体的细节这里先不说,单从排版、文档结构、内容组织来看,这篇堪称上乘之作,比我上次看到的解决方案都要好很多。

文档的标题层级分明,从主标题到子标题,再到更细粒度的小节标题,一目了然,让读者能够迅速找到感兴趣的部分;内容按照逻辑顺序组织,从问题的提出、解决方案的介绍到具体实施步骤,环环相扣,条理清晰,完整全面,读起来非常的顺畅,完全可以作为一份新客户的指导教程,很赞!

image.png
image.png
image.png

部署实践

点击解决方案中的【立即部署】,进入到部署界面,分为一键部署手动部署两种形式:

image.png

其实这里也不用想,自然是一键部署从效率上更优于手动部署,而手动部署的灵活程度优于一键部署,不过,秉着探索精神,下面还是从头到尾实践一遍。

一键部署体验

我们直接进入到第三步,点击蓝色字体处的一键部署:

image.png

资源栈名称和存储空间名称先保持默认,我们修改一下应用登录配置中的登录名及密码:

image.png

选择可用区及实例类型,设置实例的登陆密码:

image.png

设置数据库登录名及密码,选择RDS实例规格:

image.png

点击创建,发现权限有缺失,点击立即开通:

image.png

同意授权即可:

image.png

假如当前尚未开通,需在此开通消息服务MNS,按量付费的,不用担心。

image.png

回到刚才那个界面后点击继续创建:

image.png

创建完成后如下图所示:

image.png

点击输出,点击下面的url地址:

image.png

输入刚才设置的用户名及密码:

image.png

在文件管理页面,单击上传新的文件,在上传文件对话框,上传ppt文件,示例要求必须是pptx文件格式。

image.png

上传完成后可以在文件列表页面看到上传记录,稍等几秒后文件处理完成,可以在页面看到如下状态,点击可以下载处理后的ppt。

image.png

我们查阅该资源栈的执行模板,可以看到,当前网站运行多媒体文件处理的代码确确实实是运行在函数计算FC上的。

image.png

   "FcFunction": {
   
   
      "Type": "ALIYUN::FC::Function",
      "Properties": {
   
   
        "Code": {
   
   
          "OssBucketName": {
   
   
            "Ref": "OssBucket"
          },
          "OssObjectName": "fc-code/fc-web-demo-job-jar-with-dependencies.jar.zip"
        },
        "FunctionName": {
   
   
          "Fn::Sub": "${CommonName}-function"
        },
        "ServiceName": {
   
   
          "Fn::Sub": "${FcService.ServiceName}"
        },
        "MemorySize": 1024,
        "Handler": "com.aliyun.demo.Main::handleRequest",
        "DiskSize": 512,
        "Timeout": 120,
        "Runtime": "java11",
        "Cpu": 0.5
      },
      "DependsOn": "DeployApplicationOnEcs"
    },

而这也恰恰佐证了背景中所言,使用函数计算来托管运行多媒体文件处理的代码能显著提升文件处理的效率和可靠性

手动部署体验

手动部署这里也是分为两个部分的,一部分是基础的服务资源配置即部署资源,一部分是应用配置即部署应用

image.png

在部署资源中,我们需要部署专有网络VPC、交换机和安全组,创建云数据库 RDS MySQL实例,创建消息服务MNS队列,创建对象存储OSS Bucket,创建角色和权限策略,创建云服务器ECS。

image.png

这里按照操作文档一步步执行即可。

在部署应用上,我们还是需要手动执行一些操作。

登录云服务器ECS管理控制台。点击右上角的远程连接,并使用root权限登录到云服务器。

image.png

部署JAVA环境:

yum upgrade & yum install java-1.8.0-openjdk-devel

image.png

验证安装成功,执行如下命令:

java -version

image.png

编辑环境变量文件如下:

vim ~/.bashrc
export APPLETS_RDS_ENDPOINT=<数据库连接地址>
export APPLETS_RDS_USER=<数据库用户名>
export APPLETS_RDS_PASSWORD=<数据库密码>
export APPLETS_RDS_DB_NAME=<数据库名称>
export ALIYUN_RAM_ROLE_NAME=<角色名称>
# 外网访问 OSS endpoint 如oss-cn-hangzhou.aliyuncs.com
export ALIYUN_OSS_ENDPOINT=<外网访问 OSS endpoint>
# OSS region 如cn-hangzhou
export ALIYUN_REGION_ID=<OSS region>
export ALIYUN_OSS_BUCKET=<OSS bucket name>
export ECS_IP=<ECS实例公网IP>
# MNS队列 endpoint使用内网地址,如http://xxx.mns.cn-hangzhou-internal.aliyuncs.com
export ALIYUN_MNS_ENDPOINT=<MNS队列 endpoint>
export ALIYUN_MNS_QUEUE=<MNS队列名称>
export WANX_DEMO_USERNAME=<自定义界面登录用户名>
export WANX_DEMO_PASSWORD=<自定义界面登录密码>

image.png

执行如下命令使环境变量生效:

source ~/.bashrc

image.png

下载解压工具unzip,此处已经下载好了:

yum install unzip

image.png

下载代码:

wget https://help-static-aliyun-doc.aliyuncs.com/demos/demo.zip

image.png

解压代码包

unzip -d /home/admin demo.zip

启动服务

sh /home/admin/deploy.sh start /home/admin/fc-web-demo-0.0.1-SNAPSHOT.jar

看到如下信息表示启动成功。

image.png

接下来,我们要创建函数计算函数,用于感知OSS Bucket中用户上传的文件,进行处理,然后将处理后的文件上传到OSS Bucket中。

在创建函数页面,选择事件函数,配置以下配置项,然后单击创建。

image.png

按要求配置函数如下:

image.png

在函数配置页面,选择配置页签,在左侧导航栏,单击触发器,然后单击创建触发器。

image.png
image.png

最后,我们访问ECS的公网地址即可看到该界面:

image.png

对照之前一键部署中的模版,我们也可以发现其一致性,即:一键部署仅是采用ROS模版将手动部署的大量复杂命令脚本化了

比如此段对应着上文手动配置环境变量文件:

image.png

比如此段对应着上文手动创建函数计算触发器:

image.png

总结

总的来说,这篇解决方案确实是非常优秀的,不吹不黑,至少比我之前评测过的任何一篇都要完整和详细。

而对比在应用中处理文件和使用函数计算处理文件,其特点也是显而易见的:

image.png

函数计算能够显著增强文件处理的稳定性和扩展性。相较于在应用中直接处理文件导致的资源争用和系统负载问题,函数计算通过解耦核心业务逻辑与文件处理任务,确保了系统的高可用性。同时,由于函数计算支持自动弹性的资源分配机制,可以轻松应对突发的流量高峰,无需预先配置大量的计算资源来应对可能的峰值,从而大大降低了成本。这种按需分配资源的方式不仅提高了资源利用率,还简化了运维工作,使得开发者能够更加专注于业务逻辑的开发与优化。

展望未来,随着云计算技术的不断进步,期望函数计算能提供更多定制化的解决方案,在文件处理领域发挥越来越重要的作用。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
3月前
|
消息中间件 关系型数据库 Serverless
函数计算驱动多媒体文件处理解决方案评测
在本次评测中,我有幸体验了函数计算驱动的多媒体文件处理解决方案。
71 28
|
3月前
|
弹性计算 关系型数据库 Serverless
告别资源瓶颈,函数计算驱动多媒体文件处理方案:https://www.aliyun.com/solution/tech-solution/fc-drive-file
本文介绍了一种基于阿里云的一键部署解决方案,利用云服务器ECS、RDS MySQL、OSS、函数计算FC及MNS等服务,实现高效的多媒体文件处理。方案通过事件驱动机制,将文件处理任务解耦,并自动弹性扩展,按需付费,简化部署流程,提高处理效率。本文还提供了详细的部署步骤与体验反馈,展示了从配置到文件处理的全过程。
|
3月前
|
Serverless
解决方案评测|函数计算驱动多媒体文件处理获奖名单公布
解决方案评测|函数计算驱动多媒体文件处理获奖名单公布!!
|
3月前
|
运维 监控 Serverless
评测报告 - 函数计算驱动多媒体文件处理
官方文档为使用函数计算处理多媒体文件提供了详尽的指导,涵盖从创建函数到监控的全流程,并附有多种编程语言的代码示例。尽管文档对初学者友好,但在高级配置、故障排查及API应用等方面仍有提升空间。实际体验中,函数计算表现出色,尤其在高并发场景下,具备自动扩展能力,确保高性能和稳定性,且按使用付费模式有助于降低成本。然而,部署过程中仍需注意环境变量配置、超时设置及依赖管理等问题,部分高级功能需更多技术支持。
47 4
|
3月前
|
人工智能 自然语言处理 Serverless
阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
阿里云函数计算与 NVIDIA TensorRT/TensorRT-LLM 展开合作,通过结合阿里云的无缝计算体验和 NVIDIA 的高性能推理库,开发者能够以更低的成本、更高的效率完成复杂的 AI 任务,加速技术落地和应用创新。
158 13
|
4月前
|
机器学习/深度学习 机器人 Serverless
FaaS 的应用场景
FaaS 的应用场景
|
4月前
|
Serverless API 异构计算
函数计算产品使用问题之修改SD模版应用的运行环境
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
运维 Serverless 网络安全
函数计算产品使用问题之通过仓库导入应用时无法配置域名外网访问,该如何排查
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
27天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
74 1
|
1月前
|
运维 监控 Serverless
Serverless架构在图像处理等计算密集型应用中展现了显著的优势
Serverless架构在图像处理等计算密集型应用中展现了显著的优势
30 1