mcpField
T
trigger-config

trigger-config

github.com/triggerdotdevクラウド・DevOps352.3k 回インストール1 週間前に更新
リポジトリ

trigger-config について

Trigger.dev プロジェクトの設定ガイドです。タスクのランタイムやビルドを調整する開発者向けに、`trigger.config.ts` と、データベース、ブラウザー自動化、メディア処理、Python、環境変数の拡張設定を説明します。

主な機能

  1. 01ランタイムとタスクディレクトリの設定
  2. 02Prisma データベース拡張の追加
  3. 03Playwright または Puppeteer の設定
  4. 04FFmpeg と Python スクリプトの統合
  5. 05環境変数と追加ファイルの同期

活用シーン

  1. 01タスクのデータベース対応設定
  2. 02ブラウザー自動化環境の構築
  3. 03メディア処理や Python スクリプトの設定
  4. 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()],
  },
});

ベストプラクティス

  1. 再現可能なビルドのために、バージョンを固定します
  2. 動的なシークレットには syncEnvVars を使用します
  3. ネイティブモジュールを build.external 配列に追加します
  4. --log-level debug --dry-run を使ってデバッグします

拡張機能はデプロイにのみ適用され、ローカル開発には適用されません。

完全なドキュメントについては、references/config.md を参照してください。

コメント