Azure App Services
MastraアプリケーションをAzure App Servicesにデプロイします。
このガイドでは、Mastraアプリケーションがデフォルトの
npx create-mastra@latest
コマンドを使用して作成されていることを前提としています。
新しいMastraアプリケーションの作成方法の詳細については、
はじめにガイドを参照してください
前提条件
- アクティブなサブスクリプションを持つAzureアカウント
- Mastraアプリケーションを含むGitHubリポジトリ
- Mastraアプリケーションは
npx create-mastra@latest
を使用して作成されている必要があります
デプロイ手順
新しいApp Serviceを作成する
- Azure Portal にログインします
- **App Services **に移動するか、上部の検索バーで検索します
- 作成をクリックして新しいApp Serviceを作成します
- ドロップダウンでWeb Appを選択します
App Serviceの設定を構成する
- サブスクリプション: Azureサブスクリプションを選択します
- リソースグループ: 新しいリソースグループを作成するか、既存のものを選択します
- インスタンス名: アプリの一意の名前を入力します(これはURLの一部になります)
- 公開: コードを選択します
- ランタイムスタック: Node 22 LTSを選択します
- オペレーティングシステム: Linuxを選択します
- リージョン: ユーザーに近いリージョンを選択します
- Linuxプラン: 選択したリージョンによってはプランを選択するオプションがある場合があります。ニーズに適したものを選択してください。
- 確認 + 作成をクリックします
- 検証が完了するまで待ち、作成をクリックします
デプロイを待つ
- デプロイが完了するまで待ちます
- 完了したら、次のステップセクションの下にあるリソースに移動をクリックします
環境変数を構成する
デプロイの設定を行う前に、環境変数を構成します:
- 左サイドバーの設定 > 環境変数に移動します
- 必要な環境変数を追加します。例:
- モデルプロバイダーのAPIキー(例:
OPENAI_API_KEY
) - データベース接続文字列
- Mastraアプリケーションが必要とするその他の設定値
- モデルプロバイダーのAPIキー(例:
- 適用をクリックして変更を保存します
GitHubデプロイを設定する
- 左サイドバーのデプロイセンターに移動します
- ソースとしてGitHubを選択します
- AzureでGitHubの認証がまだ済んでいない場合は、GitHubにサインインします
- この例では、プロバイダーとしてGitHub Actions を維持します
- 組織、リポジトリ、ブランチを選択します
- AzureがGitHubワークフローファイルを生成し、続行前にプレビューできます
- 保存をクリックします(保存ボタンはページの上部にあります)
GitHubワークフローを変更する
Azureによって生成されるデフォルトのワークフローは、Mastraアプリケーションでは失敗するため、変更が必要です。
Azureがワークフローを作成した後、GitHub Actionsの実行がトリガーされ、ワークフローファイルがブランチにマージされます。必要な変更なしでは失敗するため、この初回実行をキャンセルしてください。
最新の変更をローカルリポジトリにプルし、生成されたワークフローファイル(.github/workflows/main_<your-app-name>.yml
)を変更します:
-
ビルドステップを更新する: “npm install, build, and test”という名前のステップを見つけて:
- ステップ名を”npm install and build”に変更します
- Mastraアプリケーションで適切なテストを設定していない場合は、デフォルトのテストスクリプトが失敗してデプロイを妨げるため、runセクションから
npm test
コマンドを削除します。動作するテストがある場合は、testコマンドを残すことができます。
-
zipアーティファクトステップを更新する: “Zip artifact for deployment”ステップを見つけて、zipコマンドを以下に置き換えます:
run: (cd .mastra/output && zip ../../release.zip -r .)
これにより、
.mastra/output
からのビルド出力のみがデプロイパッケージに含まれることが保証されます。
変更をデプロイする
- ワークフローの変更をコミットしてプッシュします
- Azureダッシュボードのデプロイセンターでビルドが自動的にトリガーされます
- 正常に完了するまでデプロイの進行状況を監視します
アプリケーションにアクセスする
- ビルドが成功したら、アプリケーションが開始されるまで少し待ちます
- Azure portalの概要タブで提供されるデフォルトURLを使用してデプロイされたアプリケーションにアクセスします
- アプリケーションは
https://<your-app-name>.azurewebsites.net
で利用できます
Mastraサーバーに接続する
@mastra/client-js
パッケージのMastraClient
を使用して、クライアントアプリケーションからMastraサーバーに接続できるようになりました。
詳細については、MastraClient
のドキュメントを参照してください。
import { MastraClient } from "@mastra/client-js";
const mastraClient = new MastraClient({
baseUrl: "https://<your-app-name>.azurewebsites.net",
});
Azure App Servicesは、一部の価格帯でエフェメラルファイルシステムを使用します。
本番アプリケーションでは、ファイルURLを使用するLibSQLStore
など、ローカルファイルシステムに依存するMastraストレージプロバイダーの使用は避けてください。代わりにクラウドベースのストレージソリューションの使用を検討してください。