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

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

引言

又到了一周一次的解决方案测评频道了,本次测评的主题是《告别资源瓶颈,函数计算驱动多媒体文件处理》,测评地址如下: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"
    },
AI 代码解读

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

手动部署体验

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

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
AI 代码解读

image.png

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

java -version
AI 代码解读

image.png

编辑环境变量文件如下:

vim ~/.bashrc
AI 代码解读
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=<自定义界面登录密码>
AI 代码解读

image.png

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

source ~/.bashrc
AI 代码解读

image.png

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

yum install unzip
AI 代码解读

image.png

下载代码:

wget https://help-static-aliyun-doc.aliyuncs.com/demos/demo.zip
AI 代码解读

image.png

解压代码包

unzip -d /home/admin demo.zip
AI 代码解读

启动服务

sh /home/admin/deploy.sh start /home/admin/fc-web-demo-0.0.1-SNAPSHOT.jar
AI 代码解读

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

image.png

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

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

image.png

按要求配置函数如下:

image.png

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

image.png
image.png

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

image.png

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

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

image.png

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

image.png

总结

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

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

image.png

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

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

相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
打赏
0
15
20
4
3522
分享
相关文章
立马耀:通过阿里云 Serverless Spark 和 Milvus 构建高效向量检索系统,驱动个性化推荐业务
蝉妈妈旗下蝉选通过迁移到阿里云 Serverless Spark 及 Milvus,解决传统架构性能瓶颈与运维复杂性问题。新方案实现离线任务耗时减少40%、失败率降80%,Milvus 向量检索成本降低75%,支持更大规模数据处理,查询响应提速。
225 57
云端问道13期方案教学-告别资源瓶颈,函数计算驱动多媒体文件处理
《云端问道13期方案教学》由阿里云技术团队周博宇主讲,聚焦如何使用函数计算突破资源瓶颈,高效处理多媒体文件。方案涵盖六大要点:寻找云需求解决方案、选择函数计算的原因、对比不同文件处理方式、实现多媒体文件处理、应用场景广泛性及优惠购买推荐。通过将文件处理从主应用拆分,利用函数计算的按需扩展和自动弹性特性,确保核心业务稳定,并大幅降低成本。适用于图片、视频处理等多种场景。
云端问道13期方案教学-告别资源瓶颈,函数计算驱动多媒体文件处理
Serverless爬虫架构揭秘:动态IP、冷启动与成本优化
随着互联网数据采集需求的增长,传统爬虫架构因固定IP易封禁、资源浪费及扩展性差等问题逐渐显现。本文提出基于Serverless与代理IP技术的新一代爬虫方案,通过动态轮换IP、弹性调度任务等特性,显著提升启动效率、降低成本并增强并发能力。架构图与代码示例详细展示了其工作原理,性能对比数据显示采集成功率从71%提升至92%。行业案例表明,该方案在电商情报与价格对比平台中效果显著,未来有望成为主流趋势。
Serverless爬虫架构揭秘:动态IP、冷启动与成本优化
千万级数据秒级响应!碧桂园基于 EMR Serverless StarRocks 升级存算分离架构实践
碧桂园服务通过引入 EMR Serverless StarRocks 存算分离架构,解决了海量数据处理中的资源利用率低、并发能力不足等问题,显著降低了硬件和运维成本。实时查询性能提升8倍,查询出错率减少30倍,集群数据 SLA 达99.99%。此次技术升级不仅优化了用户体验,还结合AI打造了“一看”和“—问”智能场景助力精准决策与风险预测。
354 69
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
273 12
基于阿里云Serverless Kubernetes(ASK)的无服务器架构设计与实践
无服务器架构(Serverless Architecture)在云原生技术中备受关注,开发者只需专注于业务逻辑,无需管理服务器。阿里云Serverless Kubernetes(ASK)是基于Kubernetes的托管服务,提供极致弹性和按需付费能力。本文深入探讨如何使用ASK设计和实现无服务器架构,涵盖事件驱动、自动扩展、无状态设计、监控与日志及成本优化等方面,并通过图片处理服务案例展示具体实践,帮助构建高效可靠的无服务器应用。
云端问道13期实操教学-告别资源瓶颈,函数计算驱动多媒体文件处理
《云端问道13期实操教学》介绍了使用函数计算实现多媒体文件处理的解决方案,分为五部分:方案概览、部署准备、一键部署、完成及清理和主流应用场景。通过创建VPC、ECS、RDS等资源,演示了如何利用函数计算处理PPT加水印并转PDF,解决了资源瓶颈问题。最后讲解了函数计算在部署外部应用、文件处理和音视频处理中的优势。
阿里云 Serverless 助力盟主直播:高并发下的稳定性和成本优化
通过阿里云的 Serverless 产品和技术,盟主直播实现了核心直播平台的云原生架构升级,不仅解决了盟主直播现有业务面临的挑战,还面向未来为盟主直播的平台扩展性提供了技术基础,有效提升了行业竞争力。
云端问道9期实践教学-省心省钱的云上Serverless高可用架构
详细介绍了云上Serverless高可用架构的一键部署流程
119 10
Serverless架构下的OSS应用:函数计算FC自动处理图片/视频转码(演示水印添加+缩略图生成流水线)
本文介绍基于阿里云函数计算(FC)和对象存储(OSS)构建Serverless媒体处理流水线,解决传统方案资源利用率低、运维复杂、成本高等问题。通过事件驱动机制实现图片水印添加、多规格缩略图生成及视频转码优化,支持毫秒级弹性伸缩与精确计费,提升处理效率并降低成本,适用于高并发媒体处理场景。
117 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问