trigger-config について
Trigger.dev プロジェクトの設定ガイドです。タスクのランタイムやビルドを調整する開発者向けに、`trigger.config.ts` と、データベース、ブラウザー自動化、メディア処理、Python、環境変数の拡張設定を説明します。
主な機能
- 01ランタイムとタスクディレクトリの設定
- 02Prisma データベース拡張の追加
- 03Playwright または Puppeteer の設定
- 04FFmpeg と Python スクリプトの統合
- 05環境変数と追加ファイルの同期
活用シーン
- 01タスクのデータベース対応設定
- 02ブラウザー自動化環境の構築
- 03メディア処理や Python スクリプトの設定
- 04ビルドへのファイルと環境変数の追加
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ triggerdotdev/ skills --skill trigger-configインストール後、Claude Code で/trigger-configを入力して読み込まれたか確認します。
同梱ファイルreferences/config.md
詳細
Trigger.dev の設定
trigger.config.ts とビルド拡張機能を使用して、Trigger.dev プロジェクトを設定します。
使用する場面
- 新しい Trigger.dev プロジェクトをセットアップするとき
- データベースのサポートを追加するとき(Prisma、TypeORM)
- ブラウザー自動化を設定するとき(Playwright、Puppeteer)
- メディア処理を追加するとき(FFmpeg)
- タスクから Python スクリプトを実行するとき
- 環境変数を同期するとき
- システムパッケージをインストールするとき
基本設定
// trigger.config.ts
import { defineConfig } from "@trigger.dev/sdk";
export default defineConfig({
project: "<project-ref>",
dirs: ["./trigger"],
runtime: "node", // "node", "node-22", or "bun"
logLevel: "info",
retries: {
enabledInDev: false,
default: {
maxAttempts: 3,
minTimeoutInMs: 1000,
maxTimeoutInMs: 10000,
factor: 2,
},
},
build: {
extensions: [], // Add extensions here
},
});
よく使用するビルド拡張機能
Prisma
import { prismaExtension } from "@trigger.dev/build/extensions/prisma";
export default defineConfig({
// ...
build: {
extensions: [
prismaExtension({
schema: "prisma/schema.prisma",
migrate: true,
directUrlEnvVarName: "DIRECT_DATABASE_URL",
}),
],
},
});
Playwright(ブラウザー自動化)
import { playwright } from "@trigger.dev/build/extensions/playwright";
extensions: [
playwright({
browsers: ["chromium"], // or ["chromium", "firefox", "webkit"]
}),
]
Puppeteer
import { puppeteer } from "@trigger.dev/build/extensions/puppeteer";
extensions: [puppeteer()]
// Set env var: PUPPETEER_EXECUTABLE_PATH="/usr/bin/google-chrome-stable"
FFmpeg(メディア処理)
import { ffmpeg } from "@trigger.dev/build/extensions/core";
extensions: [
ffmpeg({ version: "7" }),
]
// Automatically sets FFMPEG_PATH and FFPROBE_PATH
Python
import { pythonExtension } from "@trigger.dev/build/extensions/python";
extensions: [
pythonExtension({
scripts: ["./python/**/*.py"],
requirementsFile: "./requirements.txt",
devPythonBinaryPath: ".venv/bin/python",
}),
]
// Usage in tasks:
const result = await python.runScript("./python/process.py", ["arg1"]);
システムパッケージ(apt-get)
import { aptGet } from "@trigger.dev/build/extensions/core";
extensions: [
aptGet({
packages: ["imagemagick", "curl"],
}),
]
追加ファイル
import { additionalFiles } from "@trigger.dev/build/extensions/core";
extensions: [
additionalFiles({
files: ["./assets/**", "./templates/**"],
}),
]
環境変数の同期
import { syncEnvVars } from "@trigger.dev/build/extensions/core";
extensions: [
syncEnvVars(async (ctx) => {
return [
{ name: "API_KEY", value: await getSecret(ctx.environment) },
{ name: "ENV", value: ctx.environment },
];
}),
]
よく使用する拡張機能の組み合わせ
フルスタック Web アプリ
extensions: [
prismaExtension({ schema: "prisma/schema.prisma", migrate: true }),
additionalFiles({ files: ["./assets/**"] }),
syncEnvVars(async (ctx) => [...envVars]),
]
AI/ML 処理
extensions: [
pythonExtension({
scripts: ["./ai/**/*.py"],
requirementsFile: "./requirements.txt",
}),
ffmpeg({ version: "7" }),
]
Web スクレイピング
extensions: [
playwright({ browsers: ["chromium"] }),
additionalFiles({ files: ["./selectors.json"] }),
]
グローバルライフサイクルフック
export default defineConfig({
// ...
onStartAttempt: async ({ payload, ctx }) => {
console.log("Task starting:", ctx.task.id);
},
onSuccess: async ({ payload, output, ctx }) => {
console.log("Task succeeded");
},
onFailure: async ({ payload, error, ctx }) => {
console.error("Task failed:", error);
},
});
マシンのデフォルト設定
export default defineConfig({
// ...
defaultMachine: "medium-1x",
maxDuration: 300, // seconds
});
テレメトリーの統合
import { PrismaInstrumentation } from "@prisma/instrumentation";
export default defineConfig({
// ...
telemetry: {
instrumentations: [new PrismaInstrumentation()],
},
});
ベストプラクティス
- 再現可能なビルドのために、バージョンを固定します
- 動的なシークレットには
syncEnvVarsを使用します - ネイティブモジュールを
build.external配列に追加します --log-level debug --dry-runを使ってデバッグします
拡張機能はデプロイにのみ適用され、ローカル開発には適用されません。
完全なドキュメントについては、references/config.md を参照してください。
コメント
Markdown 対応