メインコンテンツへ移動

Mastra を Netlify にデプロイする

@mastra/deployer-netlify を使用して、Mastra サーバーを Netlify にデプロイします。Deployer はコードをバンドルし、Netlify の Frameworks API に準拠した .netlify ディレクトリを生成します。デフォルトでは Serverless Function としてデプロイしますが、レイテンシを下げ、実行時間を延ばすために Edge Function としてデプロイすることもできます。

情報

このガイドでは、Mastra サーバーのデプロイについて説明します。Server Adapter または Web フレームワークを使用している場合は、そのフレームワークの通常の方法でデプロイしてください。

始める前に
始める前にへの直接リンク

Mastra アプリケーションNetlify アカウントが必要です。

警告

Netlify Functions のファイルシステムは一時的なため、設定するすべてのストレージ(Observability ストレージを含む)は外部でホストする必要があります。LibSQLStore でファイル URL を使用している場合は、リモートでホストされるデータベースに切り替えてください。

インストール
インストールへの直接リンク

@mastra/deployer-netlify パッケージをプロジェクトに追加します。

npm install @mastra/deployer-netlify@latest

NetlifyDeployer をインポートし、Mastra 設定の Deployer として指定します。

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { NetlifyDeployer } from '@mastra/deployer-netlify'

export const mastra = new Mastra({
deployer: new NetlifyDeployer(),
})

代わりに Edge Function としてデプロイするには、{ target: 'edge' } を渡します。

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { NetlifyDeployer } from '@mastra/deployer-netlify'

export const mastra = new Mastra({
deployer: new NetlifyDeployer({
target: 'edge',
}),
})

Edge Function はユーザーに最も近いエッジ上の Deno で動作します。厳密な実行タイムアウトはなく、CPU 時間の上限のみであるため、実行時間の長い AI Workflow に適しています。詳しくはコンストラクターのオプションを参照してください。

プロジェクトルートに、次の内容で netlify.toml ファイルを作成します。

[build]
command = "mastra build"

デプロイする
デプロイするへの直接リンク

プロジェクトを設定したら、使用するリモート Git Provider(GitHub など)にプッシュします。

  1. リポジトリを Netlify に接続します。設定中に Netlify が netlify.toml ファイルを検出し、ビルドコマンドを mastra build に設定します。

    注記

    アプリケーションの実行に必要な環境変数(モデル Provider の API キーなど)を設定してください。

  2. 準備ができたら Deploy ボタンをクリックし、最初のデプロイが完了するまで待ちます。1 つの Function がデプロイされたことが表示されます。

  3. https://<random-slug>.netlify.app/api/agents でデプロイを確認します。Agent の一覧が JSON で返されます。

    Mastra サーバーはすべての API エンドポイントに /api を付けるため、リクエスト時の URL に追加する必要があります。

    情報

    Netlify Functions は通常、https://<random-slug>.netlify.app/.netlify/functions/api にデプロイされます。NetlifyDeployer/* へのすべてのリクエストを /.netlify/functions/api/:splat にリダイレクトするため、URL に .netlify/functions プレフィックスを含める必要はありません。

  4. これで、Mastra エンドポイントを HTTP 経由で呼び出せます。

    警告

    エンドポイントを公開する前に、認証を設定してください。