利用Lambda當作影音轉換器的研究筆記(檔案超過512MB時)
Lambda 適合用來做些簡單的工作 , 但 要轉檔的file超過512MB時怎辦 !? 什麼是Lambda ? /* 引用: AWS官網 https://aws.amazon.com/tw/lambda/features/ AWS Lambda 是一種無伺服器運算服務,可執行程式碼以回應事件,並且自動為您管理基礎運算資源。您可以使用 AWS Lambda 透過自訂邏輯來擴展其他 AWS 服務,或者自己建立以 AWS 的擴展性、效能和安全性執行的後端服務. */ 研究動機 : 央喜早期用Cloud Server開發了一套 " 客戶簡報(pdf)+法說會錄音檔(mp3)的自動合併成影音(mp4) "的程式 , 並可隨簡報切換時間與聲音檔同步撥放 , 主要是客戶為了配合證交所新規定 , 要提供給證交所影音平台"交差"用 ( 合併成果展示 ) ; 由於一直想利用 serverless 來改善這套流程 , 並希望可以利用serverless 達到多工與平行處理 , 於是趁最近有空檔加緊再研究了一下Amazon Lambda ... 才發現Lambda 近年有許多改版與方便的地方 , 包括 Timeout最大已可延長至15分鐘 , 還多了好像2018年才新增的 " Layer層級" ! (玩一玩發現Layer真不錯用) Lambda優點就是便宜 , 需要時才執行 , 不需要像EC2般一直開機 ( $$一直流走 ) , 缺點就是它有較多的限制 (參考 : AWS Lambda 限制 ) , 它只提供了 512MB 的/tmp 暫存 , 對於較大點的檔案若要當轉檔暫存可真是個麻煩的地方 , 於是開始著手來研究 ... (當然對於較大影音檔案也可以用 Elastic Transcoder 來達成 , 啊就是習慣幫公司省$$嘛 XD ) 參考 : RUNNING FFMPEG ON AWS LAMBDA FOR 1.9% THE COST OF AWS ELASTIC TRANSCODER 第一步 : 先研究如何突破 512MB空間上的限制 網路上看到很多案例都是將video小檔案輸出成縮圖之類 , 或是resize後再丟回S3 ,