前書き
2025年3月4日にMastra Cloudがベータ公開されました。まだベータ版ですが、誰でも無料でMastra製のAI AgentやWorkflowをデプロイすることができます。
デプロイの手順
デプロイするためには、GitHub
とMastra Cloud
を連携する必要があります。
ログイン時にリポジトリを連携すれば、Create new project
から連携済みのリポジトリを使ってデプロイできます。
必要な環境変数を入力し、プロジェクトのディレクトリを選択すればデプロイ完了です。
ストレージが必要な場合は、Mastra Cloudが提供するものを利用することも可能です。
デプロイが完了すると、ローカルのPlaygroundと同じ感覚でテストできます。
また、独自のドメインが付与され、API感覚でMastraのAgentやWorkflowを呼び出すことができます。
セキュリティの考慮事項
そのままModelを呼び出すキーとMastraプロジェクトをデプロイしてしまうと、URLを知る全ての人がアクセス可能になってしまいます
以下のような設定を行うことをお勧めします
export const mastra = new Mastra({
...
server: {
middleware: [
{
handler: async (c, next) => {
const isFromMastraCloud = c.req.header('x-mastra-cloud') === 'true';
const isDevPlayground = c.req.header('x-mastra-dev-playground') === 'true'
if(isFromMastraCloud || isDevPlayground) {
await next();
return;
}
const authHeader = c.req.header("Authorization");
if (!authHeader || !authHeader.startsWith('Bearer ')) {
return new Response('Unauthorized', { status: 401 });
}
const token = authHeader.substring(7);
const validApiKey = process.env.BEARER_KEY || 'your-secret-api-key';
if (token !== validApiKey) {
return new Response('Invalid token', { status: 401 });
}
await next();
},
path: "/api/*",
},
]
}
});
このコードでは以下の認証を実装しています:
- Bearer tokenの確認
-
x-mastra-cloud
ヘッダー:Mastra Cloud特有のヘッダーで、Mastra Cloudからのリクエストを識別 -
x-mastra-dev-playground
ヘッダー:ローカルPlayground特有のヘッダーで、ローカル環境でのAgent/Workflow検知に必要
現在の課題
上記の設定を行うと、Mastra CloudからAI Agentを検知はできますが、呼び出しができなくなる問題が発生します。
推測される原因は、AgentやWorkflowを呼び出す際にx-mastra-cloud
ヘッダーが含まれていない可能性があります。GitHubでコードを検索しても、x-mastra-cloud
を考慮した実装は私のリポジトリ以外に見つかりませんでした。
実装の問題なのか、Mastra Cloudがまだベータ版のため考慮漏れなのかは現時点では不明です。
2025/06/03に追記
Mastra Cloudからエージェントなどの呼び出しが正常になりました、Mastra開発チームに感謝です。
まとめ
現状でも無料環境にデプロイできるだけでも価値があるのではないでしょうか。
本番運用にはまだお勧めできませんが、検証目的であれば試す価値は十分にあると思います。
新しい情報があれば、また追記いたします。
ご興味ある方は自己責任でお試しください
参考資料