云原生最佳实践系列 7:基于 OSS Object FC 实现非结构化文件实时处理

本文涉及的产品
简介: 阿里云OSS对象存储方案利用函数计算FC,在不同终端请求时实时处理OSS中的原图,减少衍生图存储,降低成本。

01 方案概述


现在绝大多数客户都有很多非结构化的数据存在 OSS 中,以图片,视频,音频居多。举一个图片处理的场景,现在各种终端种类繁多,不同的终端对图片的格式、分辨率要求也不同,所以一张图片往往会有很多张衍生图,那如果所有的衍生图都存在 OSS 中,那存储的成本会增加,所以就可以通过 OSS Object FC 的方案,在不同的终端请求时,对 OSS 中的原图基于终端的要求做实时处理,然后响应返回,这样 OSS 中只需要存储原图即可。


该方案以图片处理的两类场景为例:


场景一:OSS 中只存原图,用户在请求 URL 中带着期望对图片做何种处理的参数,请求回来的图片是已经基于参数处理好的图片。

场景二:OSS 中只存某种格式的图片,实现无论用户请求时 URL 中是何种格式,都可以正常返回图片。


02 方案优势


  • 不需要所有版本的图片都保存,只需要保存原图即可,可有效优化 OSS 存储成本。
  • 可以灵活实现对 OSS 中的数据做在请求时做扩展业务逻辑的需求,极大减少 OSS 侧定制开发,并且客户可以完全掌控处理图片的逻辑,扩展性极强。比如请求时实时加水印、实时美颜处理、实时裁剪图片、实时截帧等。


03 部署架构

image.png

名词解释:

  • OPAP(Object Process Access Point):是在 AP 的能力上,拓展了 FC 功能,通过 OPAP 访问的 GetObject 会触发 FC。其他类型的请求会退化到绑定的 AP。
  • AP(AccessPoint):是 OSS 推出的新的接入点域名;通过该域名访问,有独立的权限控制。假设用户想把一个 bucket 给不同业务方使用,但是想精细控制每一个业务方的权限,可以通过创建多个 AP 给业务方使用。


04 架构说明


该方案的整条链路是非常清晰明确的:


  • 用户请求 CDN 地址展示图片。
  • CDN 没有命中后回源到 OPAP。
  • OPAP 的请求会触发函数计算的函数,在该函数中可以拿到用户请求的 URL 详细信息,然后可由用户自行实现对图片处理的逻辑。
  • 函数中对图片处理完后,将图片返回给 AP。
  • AP 返回给 OSS,由 OSS 响应给 CDN。


整个方案中,CDN 的回源配置,OPAP 的创建,AP 的创建,函数代码的实现需要在产品控制台进行配置,详细步骤参见后续内容。


05 产品介绍


专有网络 VPC(Virtual Private Cloud):是用户基于阿里云创建的自定义私有网络, 不同的专有网络之间二层逻辑隔离,用户可以在自己创建的专有网络内创建和管理云产品实例,比如 ECS、负载均衡、RDS 等。


函数计算 FC(Function Compute):函数计算是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码或镜像。函数计算为您准备好计算资源,弹性地、可靠地运行任务,并提供日志查询、性能监控和报警等功能。


内容分发网络(Content Delivery Network,CDN):是建立并覆盖在承载网上,由不同区域的服务器组成的分布式网络。将源站资源缓存到全国各地的边缘服务器,供用户就近获取,降低源站压力。


阿里云对象存储 OSS(Object Storage Service):是一款海量、安全、低成本、高可靠的云存储服务,可提供 99.9999999999%(12 个 9)的数据持久性,99.995% 的数据可用性。多种存储类型供选择,全面优化存储成本。


云速搭 CADT(Cloud Architect Design Tools):是一款为上云应用提供自助式云架构管理的产品,显著地降低应用云上管理的难度和时间成本。本产品提供丰富的预制应用架构模板,同时也支持自助拖拽方式定义应用云上架构;支持较多阿里云服务的配置和管理。用户可以方便的对云上架构方案的成本、部署、运维、回收进行全生命周期的管理。


06 前置条件


在进行本文操作之前,您需要完成以下准备工作:


1)注册阿里云账号,并完成实名认证。您可以登录阿里云控制台,并前往实名认证页面https://account.console.aliyun.com/v2/#/authc/home查看是否完成实名认证。


2)购买按量付费资源,阿里云账户余额需要大于 100 元。考虑到部署后每小时会产生费用,建议账号内余额或者代金卷金额大于 200 元。您可以登录阿里云控制台,前往账户总览页面https://usercenter2.aliyun.com/home查看账户余额。


3)该最佳实践涉及到使用 Git 下载示例中需要的代码和文件,所以请提前准备好 Git 环境。


4)该最佳实践需要您持有备案过的域名才能正常完成全部操作,请您先准备域名。


07 操作步骤


本实践可通过 CADT 官方模板快速拉起演示环境。


1. 基础环境搭建

2. 获取示例代码和文件

2.1.通过 Git 获取示例代码和文件

3. 配置对象存储 OSS

3.1.创建接入点(AP)

3.2.创建对象 FC 接入点(OPAP)

3.3.创建 RAM 授权

3.4.上传样例图片

4. 配置函数计算 FC

4.1.登录函数计算 FC 控制台

4.2.部署修改图片扩展名代码

4.3.更新 oss sdk 和 pyopenssl

5. 配置 CDN

5.1.添加 CDN域名

5.2.CDN 域名 CNAME 解析

5.3.配置 CDN 域名

6. 场景验证

6.1.转换图片扩展名场景验证

6.2.根据 URL 参数实时变更图片尺寸场景验证

6.3.验证更多场景

7. 一键释放资源


最佳实践全部内容,请点击此处查看。对方案和产品感兴趣的朋友,可以加入钉钉群交流(群号:31852400)。


往期文章:

云原生最佳实践系列 1:借助云速搭 CADT 如何实现 Kafka 的性能压测?

云原生最佳实践系列 2:基于 MSE 云原生网关同城多活

云原生最佳实践系列 3:基于 SpringCloud 应用玩转 MSE

云原生最佳实践系列 4:基于 MSE 和 SAE 的微服务部署与压测

云原生最佳实践系列 5:基于函数计算 FC 实现阿里云 Kafka 消息内容控制 MongoDB DML 操作

云原生最佳实践系列 6:MSE 云原生网关使用 JWT 进行认证鉴权

相关文章
|
5天前
|
分布式计算 大数据 MaxCompute
MaxCompute产品使用合集之使用pyodps读取OSS(阿里云对象存储)中的文件的步骤是什么
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5天前
|
存储 Serverless 对象存储
通过FC运行脚本下载文件到OSS
本文介绍了在阿里云中使用函数计算服务(Function Compute)从URL下载文件并存储到OSS(Object Storage Service)的步骤。首先,需开通函数计算服务并创建RAM角色,授权函数计算访问OSS权限。费用详情参考官方计费概述。操作步骤包括:登录OSS控制台,使用公共模板创建执行,配置参数并运行Python脚本,脚本负责从URL下载文件并上传至指定OSS Bucket。执行成功后,文件将出现在目标OSS Bucket中。
41 0
|
5天前
|
分布式计算 Java 大数据
MaxCompute产品使用合集之大数据计算MaxCompute外部表映射了oss中的csv文件,看到"\N"被解析为"N",是什么原因
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5天前
|
运维 文字识别 Serverless
Serverless 应用引擎产品使用之在阿里云函数计算中,需要处理的文件大于100MB如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
152 5
|
5天前
|
运维 Dubbo Java
Serverless 应用引擎产品使用之在 Serverless 应用引擎中,查看镜像文件中的 JAR 文件如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
147 2
|
5天前
|
缓存 运维 Serverless
Serverless 应用引擎产品使用之阿里函数计算中。将本地电脑上的项目文件部署到阿里云函数计算(FC)上并实现对外提供API和WebUI如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
39 1
|
5天前
|
运维 JavaScript Java
Serverless 应用引擎产品使用之阿里云Serverless函数计算中,在Node.js环境中执行jar文件如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
24 0
|
5天前
|
运维 Java Serverless
Serverless 应用引擎产品使用之数据文件(例如sdxl)超过了OSS(对象存储服务)的单个上传大小限制(5GB)如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
24 1
|
5天前
|
SQL 消息中间件 存储
对象存储OSS产品常见问题之恢复文件覆盖如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
46 0
|
对象存储 API
访问 OSS 文件 404 分析
什么是 404 404 标准的 http code 状态码,代表用户请求的资源在服务端不存在, 404 并不是一个异常状态码?而是一个正常的响应。换句话说 404 已经成为了一个结果,这种响应常见在 client 端下载 OSS 的资源时出现。
4293 0
访问 OSS 文件 404 分析

热门文章

最新文章

相关产品

  • 函数计算
  • http://www.vxiaotou.com