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
- pnpm
- Yarn
- Bun
npm install @mastra/deployer-netlify@latest
pnpm add @mastra/deployer-netlify@latest
yarn add @mastra/deployer-netlify@latest
bun add @mastra/deployer-netlify@latest
NetlifyDeployer をインポートし、Mastra 設定の Deployer として指定します。
import { Mastra } from '@mastra/core'
import { NetlifyDeployer } from '@mastra/deployer-netlify'
export const mastra = new Mastra({
deployer: new NetlifyDeployer(),
})
代わりに Edge Function としてデプロイするには、{ target: 'edge' } を渡します。
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 など)にプッシュします。
リポジトリを Netlify に接続します。設定中に Netlify が
netlify.tomlファイルを検出し、ビルドコマンドをmastra buildに設定します。注記アプリケーションの実行に必要な環境変数(モデル Provider の API キーなど)を設定してください。
準備ができたら Deploy ボタンをクリックし、最初のデプロイが完了するまで待ちます。1 つの Function がデプロイされたことが表示されます。
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プレフィックスを含める必要はありません。これで、Mastra エンドポイントを HTTP 経由で呼び出せます。
警告エンドポイントを公開する前に、認証を設定してください。