Remotion Lambda 設定指南
逐步說明如何安裝並設定 Remotion Lambda,包含 AWS 角色、使用者、存取金鑰、部署函式與渲染影片的完整流程。
概覽
Remotion Lambda 讓你能夠在 AWS Lambda 上大規模平行渲染影片。本指南將引導你完成從安裝套件到渲染第一支影片的完整設定流程。
1. 安裝 @remotion/lambda
在你的 Remotion 專案中安裝 Lambda 套件:
npm install @remotion/lambda
# 或
yarn add @remotion/lambda2. 建立角色政策
在 AWS IAM 中建立一個名為 remotion-lambda-policy 的政策。你可以透過以下指令取得適合你版本的政策 JSON:
npx remotion lambda policies role將輸出的 JSON 貼入 AWS IAM 政策編輯器中儲存。
3. 建立角色
在 AWS IAM 建立一個名為 remotion-lambda-role 的角色,並將信任關係設定為允許 Lambda 服務擔任此角色:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}接著將步驟 2 建立的政策附加到此角色。
4. 建立使用者
在 AWS IAM 建立一個新的 IAM 使用者(建議命名為 remotion-user),用於從本機或伺服器端呼叫 Lambda API。
5. 建立存取金鑰
前往該使用者的「安全憑證」分頁,在「存取金鑰」區塊點擊「建立存取金鑰」。
選擇「在 AWS 運算服務上執行的應用程式」,確認後建立金鑰,並將金鑰資訊加入專案根目錄的 .env 檔案:
# .env
REMOTION_AWS_ACCESS_KEY_ID=<Access key ID>
REMOTION_AWS_SECRET_ACCESS_KEY=<Secret access key>6. 為使用者新增權限
前往 AWS IAM 使用者頁面,點擊「新增內嵌政策」,切換到「JSON」分頁,貼入以下指令的輸出結果:
npx remotion lambda policies user為政策命名(例如 remotion-user-policy)並確認建立。
7. 驗證權限設定(選用)
執行以下指令驗證所有使用者權限是否正確設定:
npx remotion lambda policies validate8. 部署函式
透過 CLI 部署可渲染影片的 Lambda 函式:
npx remotion lambda functions deploy或使用 Node.js API:
import { deployFunction } from "@remotion/lambda";
const { functionName } = await deployFunction({
region: "us-east-1",
timeoutInSeconds: 120,
memorySizeInMb: 2048,
createCloudWatchLogGroup: true,
});函式名稱將在後續渲染時使用。每個函式與 Remotion 版本綁定,升級 Remotion 後需重新部署函式。
9. 部署站台
將你的 Remotion 專案部署到 S3:
npx remotion lambda sites create src/index.ts --site-name=my-video或使用 Node.js API:
import path from "path";
import { deploySite, getOrCreateBucket } from "@remotion/lambda";
const { bucketName } = await getOrCreateBucket({ region: "us-east-1" });
const { serveUrl } = await deploySite({
bucketName,
entryPoint: path.resolve(process.cwd(), "src/index.ts"),
region: "us-east-1",
siteName: "my-video",
});部署完成後,你會收到一個 Serve URL 指向已部署的專案。
10. 確認 AWS 並行限制
確認你的帳戶並行限制:
npx remotion lambda quotas新帳戶預設可能只有 10 個並行呼叫,而每次渲染最多可使用 200 個 Lambda 函式,建議提早申請增加配額。
11. 渲染影片
使用 CLI 渲染:
npx remotion lambda render <serve-url> <composition-id>或使用 Node.js API:
import {
getFunctions,
renderMediaOnLambda,
getRenderProgress,
} from "@remotion/lambda/client";
const functions = await getFunctions({
region: "us-east-1",
compatibleOnly: true,
});
const { renderId, bucketName } = await renderMediaOnLambda({
region: "us-east-1",
functionName: functions[0].functionName,
serveUrl: url,
composition: "HelloWorld",
inputProps: {},
codec: "h264",
imageFormat: "jpeg",
maxRetries: 1,
framesPerLambda: 20,
privacy: "public",
});後續步驟
- 選擇適合的 AWS 區域
- 了解 CLI 指令與 Node.js API
- 進行上線前的生產環境檢查清單
- 若有疑問,請參閱 FAQ 或在 Discord 社群提問