雲原生最佳實踐系列 7:基於 OSS Object FC 實現非結構化檔案實時處理

阿里云云栖号發表於2024-04-28

01 方案概述

現在絕大多數客戶都有很多非結構化的資料存在 OSS 中,以圖片,影片,音訊居多。舉一個圖片處理的場景,現在各種終端種類繁多,不同的終端對圖片的格式、解析度要求也不同,所以一張圖片往往會有很多張衍生圖,那如果所有的衍生圖都存在 OSS 中,那儲存的成本會增加,所以就可以透過 OSS Object FC 的方案,在不同的終端請求時,對 OSS 中的原圖基於終端的要求做實時處理,然後響應返回,這樣 OSS 中只需要儲存原圖即可。

該方案以圖片處理的兩類場景為例:

場景一:OSS 中只存原圖,使用者在請求 URL 中帶著期望對圖片做何種處理的引數,請求回來的圖片是已經基於引數處理好的圖片。

場景二:OSS 中只存某種格式的圖片,實現無論使用者請求時 URL 中是何種格式,都可以正常返回圖片。

02 方案優勢

  • 不需要所有版本的圖片都儲存,只需要儲存原圖即可,可有效最佳化 OSS 儲存成本。
  • 可以靈活實現對 OSS 中的資料做在請求時做擴充套件業務邏輯的需求,極大減少 OSS 側定製開發,並且客戶可以完全掌控處理圖片的邏輯,擴充套件性極強。比如請求時實時加水印、實時美顏處理、實時裁剪圖片、實時截幀等。

03 部署架構

雲原生最佳實踐系列 7:基於 OSS Object FC 實現非結構化檔案實時處理

名詞解釋:

  • 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. 一鍵釋放資源

原文連結

本文為阿里雲原創內容,未經允許不得轉載。

相關文章