Mastraサーバーの作成
開発中または Mastra アプリケーションをデプロイする際、エージェント、ワークフロー、およびその他の機能を API エンドポイントとして公開する HTTP サーバーとして実行されます。このページでは、サーバーの動作を設定およびカスタマイズする方法について説明します。
サーバーアーキテクチャ
MastraはHono を基盤となるHTTPサーバーフレームワークとして使用しています。mastra build
を使用してMastraアプリケーションをビルドすると、.mastra
ディレクトリにHonoベースのHTTPサーバーが生成されます。
サーバーは以下を提供します:
- 登録されたすべてのエージェント用のAPIエンドポイント
- 登録されたすべてのワークフロー用のAPIエンドポイント
- カスタムAPIルートのサポート
- カスタムミドルウェアのサポート
- タイムアウトの設定
- ポートの設定
- ボディリミットの設定
追加のサーバー動作の追加については、ミドルウェアと カスタムAPIルートのページを参照してください。
サーバー設定
Mastraインスタンスでサーバーのport
とtimeout
を設定できます。
import { Mastra } from "@mastra/core";
export const mastra = new Mastra({
server: {
port: 3000, // デフォルトは4111
timeout: 10000, // デフォルトは30000(30秒)
},
});
カスタムCORS設定
Mastraでは、サーバーのCORS(クロスオリジンリソース共有)設定をカスタマイズすることができます。
import { Mastra } from '@mastra/core';
export const mastra = new Mastra({
server: {
cors: {
origin: ['https://example.com'], // 特定のオリジンを許可、または'*'ですべてを許可
allowMethods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
allowHeaders: ['Content-Type', 'Authorization'],
credentials: false,
}
}
});
デプロイメント
Mastraは標準的なNode.jsサーバーにビルドされるため、Node.jsアプリケーションを実行するあらゆるプラットフォームにデプロイできます:
- クラウドVM(AWS EC2、DigitalOcean Droplets、GCP Compute Engine)
- コンテナプラットフォーム(Docker、Kubernetes)
- Platform as a Service(Heroku、Railway)
- 自己ホスト型サーバー
ビルド
アプリケーションをビルドします:
# 現在のディレクトリからビルド
mastra build
# またはディレクトリを指定
mastra build --dir ./my-project
ビルドプロセス:
- エントリーファイル(
src/mastra/index.ts
またはsrc/mastra/index.js
)を特定 .mastra
出力ディレクトリを作成- ツリーシェイキングとソースマップを使用してRollupでコードをバンドル
- Hono HTTPサーバーを生成
すべてのオプションについてはmastra build
を参照してください。
サーバーの実行
HTTPサーバーを起動します:
node .mastra/output/index.mjs
ビルド出力用のテレメトリを有効にする
ビルド出力のインストルメンテーションを次のように読み込みます:
node --import=./.mastra/output/instrumentation.mjs .mastra/output/index.mjs
サーバーレスデプロイメント
MastraはCloudflare Workers、Vercel、Netlifyでのサーバーレスデプロイメントもサポートしています。
セットアップ手順については、サーバーレスデプロイメントガイドをご覧ください。