1. 程式人生 > 其它 >場景實踐:使用函式計算打包下載OSS檔案

場景實踐:使用函式計算打包下載OSS檔案

體驗簡介

本場景將提供一臺配置了Centos 7.7版本的ECS例項(雲伺服器)和物件儲存OSS例項。通過本教程的操作,您可以基於已有的環境使用函式計算將物件儲存OSS上多個檔案(Object)打包下載到本地。

體驗此場景後,可以掌握的知識有:

OSS基本操作
瞭解到函式計算基本概念

背景知識

本場景主要涉及以下雲產品和服務:

物件儲存OSS:阿里雲物件儲存OSS(Object Storage Service)是阿里雲提供的海量、安全、低成本、高持久的雲端儲存服務。其資料設計永續性不低於99.9999999999%(12個9),服務可用性(或業務連續性)不低於99.995%。OSS具有與平臺無關的RESTful API介面,您可以在任何應用、任何時間、任何地點儲存和訪問任意型別的資料。您可以使用阿里雲提供的API、SDK介面或者OSS遷移工具輕鬆地將海量資料移入或移出阿里雲OSS。資料儲存到阿里雲OSS以後,您可以選擇標準儲存(Standard)作為移動應用、大型網站、圖片分享或熱點音視訊的主要儲存方式,也可以選擇成本更低、儲存期限更長的低頻訪問儲存(Infrequent Access)、歸檔儲存(Archive)、冷歸檔儲存(Cold Archive)作為不經常訪問資料的儲存方式。當您從OSS中批量下載Object時可能會遇到批量下載不方便、小檔案較多時下載緩慢等問題。通過呼叫函式計算,可以將OSS上的Object先打包,之後將壓縮包下載到本地後再解壓,實現快速下載批量檔案的目的。使用函式計算打包下載OSS檔案的流程如下圖所示。

函式計算
函式計算是事件驅動的全託管計算服務。使用函式計算,您無需採購與管理伺服器等基礎設施,只需編寫並上傳程式碼。函式計算為您準備好計算資源,彈性地、可靠地執行任務,並提供日誌查詢、效能監控和報警等功能。

開通函式計算服務

在使用函式計算前,您需要開通函式計算服務。

說明: 本場景中提供的阿里雲子賬號無函式計算服務操作許可權,所以請使用您自己的阿里雲賬號操作。您無需擔心扣費問題,因為函式計算服務有一定的免費額度,請參見計費方式

\1. 使用您自己的阿里雲賬號登入阿里雲控制檯,然後進入函式計算產品詳情頁

\2. 單擊【免費開通】

\3. 閱讀《函式計算服務協議》勾選同意服務協議,最後單擊【立即開通】

\4. 單擊【管理控制檯】進入函式計算控制檯。

安裝Funcraft

​ \1. 執行如下命令,安裝支援ZIP的工具。

yum install -y unzip zip

\2. 執行如下命令,下載Funcraft工具。

curl -o fun-linux.zip http://funcruft-release.oss-accelerate.aliyuncs.com/fun/fun-v3.6.23-linux.zip

\3. 執行如下命令,解壓Funcraft工具安裝包。

unzip fun-linux.zip

\4. 執行如下命令,將Funcraft工具的路徑增添到環境變數PATH目錄中。

mv fun-v3.6.23-linux /usr/local/bin/fun

\5. 執行如下命令,驗證Funcraft工具是否安裝成功。

fun --version

返回如下結果,表示Funcraft工具安裝成功。

\6. 執行如下命令,進行Funcraft工具本地配置。

fun config

請參考以下資訊輸入您的Aliyun Account ID、Aliyun Access Key ID和Aliyun Access Key Secret金鑰等資訊。

Aliyun Account ID:請在賬號安全設定頁面檢視您的賬號ID。

Aliyun Access Key ID和Aliyun Access Key Secret:請在安全資訊管理頁面檢視您賬號的AccessKey ID和AccessKey Secret。

如果您使用的是阿里雲主賬號,請在安全資訊管理頁面的安全提示彈框中單擊繼續使用AccessKey。

如果您使用的是阿里雲RAM子使用者,需要確保您的子使用者擁有函式計算管理許可權AliyunFCFullAccess,請參見為RAM使用者授權

如下圖所示為您的AccessKey ID和AccessKey Secret。如果您的賬號未使用過AccessKey,請單擊右上角建立AccessKey。

Default region name:請選擇開通的函式計算服務所在地域。

正確設定可參考下圖。

部署函式

\1. 執行如下命令,下載函式程式碼。

wget https://codeload.github.com/awesome-fc/zip-oss/zip/master

\2. 執行如下命令,解壓已下載的函式程式碼。

unzip master

\3. 執行如下命令,進入新產生的資料夾。

cd zip-oss-master

\4. 執行如下命令,修改event.json檔案,填寫需要壓縮的檔案所在位置。

vim event.json

進入Vim編輯器後,按下i鍵進入編輯模式,修改以下內容,新增完成後按下Esc鍵退出編輯模式,最後輸入:wq後按下Enter鍵,儲存並退出Vim編輯器。

{
  "region": "cn-beijing",
  "bucket": "test-unzip2",
  "source-dir": "test/"
}

引數說明:

  • region:填寫OSS所在地域的regionid,可在第一小節中的雲產品資源下拉列表中檢視OSS所在地域的regionid,例如杭州填寫cn-hangzhou。
  • bucket:填寫OSS的Bucket名稱,可在第一小節中的雲產品資源下拉列表中檢視Bucket名稱。
  • source-dir:填寫需要解壓的檔案目錄,例如根目錄填寫./。建議將需要壓縮的檔案統一放在一個檔案目錄下。

新增後的檔案內容如下所示。

\5. 執行如下命令,部署函式,並記錄url值。

fun deploy

命令返回結果如下,輸入Y繼續。

命令返回結果如下,複製url值。

執行如下命令,觸發函式。

curl -v -L -o /localpath -d @./event.json urlvalue

說明: 需要將urlvalue替換成上一步中複製的url值。

\6. 雙擊虛擬桌面FireFox ESR瀏覽器,在RAM登入頁面使用雲產品資源下拉列表中的子賬號使用者和子賬號密碼登入。

\7. 在瀏覽器中訪問OSS控制檯(https://oss.console.aliyun.com/bucket)。

\8. 在OSS控制檯頁面,單擊Bucket列表

\9. 在Bucket列表頁面,單擊Bucket名稱

\10. 在檔案管理頁面,您可以看到剛剛上傳的壓縮檔案。