Remotion LabRemotion Lab
LambdaLambda 限制

Lambda 限制

了解 Remotion Lambda 適用的 AWS Lambda 標準配額與限制,包含並行執行數、儲存空間、RAM 及執行時間限制,以及如何申請配額提升。

Lambda 限制與配額

Remotion Lambda 適用標準的 AWS Lambda 配額,其中最需要注意的包含:

主要限制

限制項目預設值最大值說明
並行執行數1000視需求申請每個區域、每個帳號的最大同時執行數
儲存空間可設定10GB/tmp 目錄的最大儲存空間
RAM可設定10GB函式可使用的最大記憶體
執行時間可設定15 分鐘單次函式執行的最大時間

新帳號或企業組織內的子帳號,並行執行數的預設值可能低於 1000。

提升並行執行數限制

若要擴展渲染規模,應申請配額提升。可透過以下方式提出申請:

透過 Remotion CLI

npx remotion lambda quotas increase

此方式僅適用於 AWS 根帳號(root account),不適用於組織的子帳號。若為子帳號,請透過 AWS 主控台申請。

透過 AWS 主控台

前往以下網址申請:

https://console.aws.amazon.com/servicequotas/home

回應 AWS 的配額申請問卷

AWS 可能會要求你說明提升並行限制的原因,並發送問卷。以下是建議的回答方式:

問:此應用程式的主要 Lambda 函式 ARN 為何?

函式名稱為 [function-names],可透過以下指令取得 Remotion Lambda 函式列表:

npx remotion lambda functions ls -q

問:每個函式的預期每秒交易數(TPS)?

[提供粗略估算值]

問:每個函式的預期執行時間?

通常約為 30 秒至 1 分鐘。

問:每個函式如何被觸發?

開發階段透過 Remotion CLI 觸發,生產環境透過 Node.js 應用程式觸發。

問:主要函式與哪些服務或資源互動?

FFmpeg 和 Puppeteer。NPM 套件名稱為 @remotion/lambda

問:請說明為何需要提升並行執行數?

此應用程式採用分散式渲染策略,將影片渲染分割成多個執行緒以加速渲染結果,因此需要提升並行執行數配額。詳細說明請參閱:https://www.remotion.dev/lambda

以上回答已被成功用於取得並行執行數的提升。

其他重要限制

除了上述主要限制外,還需注意:

Lambda Payload 大小限制

  • 同步調用(Synchronous invoke):請求及回應 payload 各最大 6MB
  • 非同步調用(Asynchronous invoke):最大 256KB
  • Response Streaming:最大 20MB(用於回傳 chunk 資料)

S3 相關限制

  • 單一物件大小:最大 5TB
  • 每秒請求數:建議使用前綴(prefix)分散請求以避免 S3 速率限制

區域限制

部分 AWS 服務功能(如 Lambda Insights)在特定區域不可用:

  • ap-southeast-4
  • ap-southeast-5
  • eu-central-2

監控目前使用量

可透過 AWS 主控台的 Service Quotas 頁面查看目前的使用量與限制:

https://console.aws.amazon.com/servicequotas/home/services/lambda/quotas

也可使用 Remotion CLI 查看配額資訊:

npx remotion lambda quotas

渲染規模規劃建議

在規劃大規模渲染時,請考慮以下因素:

  1. 並行數計算:一次渲染可能使用多個 Lambda 函式(主函式 + 多個渲染器函式),在高並行場景下需預估總需求量
  2. 區域分散:可考慮在多個 AWS 區域部署,以利用各區域的獨立配額
  3. 佇列管理:實作適當的渲染佇列機制,避免同時觸發過多渲染任務
  4. 錯誤處理:當遇到 TooManyRequestsException 時,實作退避重試(exponential backoff)機制

相關資源