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-4ap-southeast-5eu-central-2
監控目前使用量
可透過 AWS 主控台的 Service Quotas 頁面查看目前的使用量與限制:
https://console.aws.amazon.com/servicequotas/home/services/lambda/quotas
也可使用 Remotion CLI 查看配額資訊:
npx remotion lambda quotas渲染規模規劃建議
在規劃大規模渲染時,請考慮以下因素:
- 並行數計算:一次渲染可能使用多個 Lambda 函式(主函式 + 多個渲染器函式),在高並行場景下需預估總需求量
- 區域分散:可考慮在多個 AWS 區域部署,以利用各區域的獨立配額
- 佇列管理:實作適當的渲染佇列機制,避免同時觸發過多渲染任務
- 錯誤處理:當遇到
TooManyRequestsException時,實作退避重試(exponential backoff)機制