エージェントを Azure にデプロイする

エージェントを作成し、ローカルでテストしました。 次に、クラウドで実現します。 このステップはオプションです。 エージェントを既にクラウドにデプロイしている場合はスキップできます (Azure である必要もありません)。

このガイドでは、エージェント コードを展開してAzureし、Microsoft管理センターに発行する手順について説明します。このコードは組織の登録済み資産になります。

メッセージング エンドポイントを更新するには、次のリソースを参照してください。 Amazon Web Services や Google Cloud Platform などの他のクラウド プロバイダーにエージェントをデプロイした場合に、メッセージング エンドポイントを更新する方法が示されています。

Prerequisites

開始する前に、次の項目があることを確認します。

必要なアカウントとアクセス許可

  • Azure の共同作成者アクセス権を持つサブスクリプション。
  • 有効で到達可能なメッセージングエンドポイントを持つ動作するエージェントコード。 Dev トンネルを使用して エージェントをローカルでテスト し、必要に応じて Microsoft 365 でテスト し、エージェント コードをビルドして期待どおりに実行できることを確認します。
  • セットアップ エージェントブループリント ステップを完了することで有効なエージェントブループリントを作成できます。
  • コード内の最新の構成ファイル a365.config.json、 a365.generated.config.json、構成ファイル (.env ファイルなど)。

必要なツール

Azure にデプロイ

Azure CLI、Azure portal、GitHub Actions などの標準の Azure ツールを使用して、エージェント アプリケーション コードを Azure にデプロイします。

エージェントアプリケーションをデプロイする

Azure CLI az webapp deploy コマンド を使用して、アプリケーションをデプロイします。

# Build your project first (example for .NET)
dotnet publish -c Release -o ./publish

# Deploy to Azure Web App
az webapp deploy --name <your-web-app> --resource-group <your-resource-group> --src-path ./publish

GitHub Actions の場合は、 Azure Web Apps のデプロイ アクションを使用します。

Warnung

シークレット管理: API キーやシークレットを含む環境変数を、コードまたは構成ファイルではなく Azure アプリ設定として格納します。 運用環境では、機密性の高いシークレットには Azure Key Vault を使用します。 ASP.NET Core および Azure Key Vault 構成プロバイダーでの開発中のアプリ シークレットの安全なストレージについて説明します。 機密情報を含む .env ファイルをソース管理に絶対にコミットしないでください。

デプロイを検証する

デプロイが完了したら、この一覧と次のセクションの手順を使用してデプロイを確認します。

✅ 展開コマンドがエラーなく完了しました
✅ ウェブアプリは実行中です
✅ アプリケーションログは起動成功を示しています
✅ 環境変数の設定が完了します
✅ メッセージング エンドポイントが応答する

デプロイコマンドがエラーなく完了したことを確認します

デプロイが完了したら、デプロイ ログで成功を確認します。

  1. Azure portal で、Web アプリに移動します。
  2. 設定>でアプリの設定を確認してください。
  3. 展開センターの展開ログを確認してください。

詳細な展開履歴を見るには:

  1. Azure ポータル > の Web アプリに移動する
  2. 展開>展開センター
  3. 最新のデプロイのログを見る

もしビルドが失敗した場合:

  • まずはローカルでクリーンアップと再構築を行い、ビルドが正常かどうかを確認してください。
  • 依存関係の欠落や構文の誤りがないか確認してください。
  • 「 デプロイコマンドが失敗する」を参照してください。

展開後にアプリがクラッシュした場合:

  • ログで特定のエラーメッセージを確認してください。
  • 必要な環境変数がすべて設定されているか確認してください。
  • 起動 時のアプリケーションクラッシュを参照してください。

ウェブアプリが動作しているか確認してください

az webapp showコマンドを使ってウェブアプリが動いているか確認してください。

az webapp show --name <your-web-app> --resource-group <your-resource-group> --query state

このコマンドの期待される出力は Runningです。

アプリケーションログに成功したスタートアップが表示されているか確認してください

Azure ポータルで Web アプリのログを表示するには:

  1. Azure ポータルで名前で Web アプリを検索します。
  2. Overview>、Logs>、Log Streamへ行ってください。

または、PowerShell az webapp log tail コマンド を使ってウェブアプリのログを読み取ることもできます:

az webapp log tail --name <your-web-app> --resource-group <your-resource-group>

ログにクラッシュやエラーメッセージがある場合は、「 起動時のアプリケーションクラッシュ」を参照してください。

環境変数の設定を確認しましょう

Azure Portal の場合:

  1. Web アプリに移動します。
  2. 設定に行き、>環境変数を選択してください。
  3. 設定が存在するかどうかを確認します。

環境変数が設定されていない場合:

メッセージングエンドポイントの応答を確認しましょう

PowerShell またはその他の方法を使用して、Web アプリの [概要 ] ページで見つけたエンドポイントが存在することをテストします。 それ以外の場合は、 メッセージング エンドポイントの 404 を参照してください。

次のステップ

次に、エージェントアプリケーションをMicrosoft管理センターに公開し、そこからエージェントインスタンスやユーザーを作成できます。

エージェントはクラウド上で稼働し、エージェントからのリクエストに対応できる状態です。 エージェントが実際の依頼を処理する際には、コードの次のステップを考慮してください:

  • パフォーマンスの監視:Microsoft OpenTelemetryを使ってエージェントの挙動を追跡し、応答を最適化しましょう。
  • ツールを追加: エージェントの機能を拡張するために、Agent 365のMCPサーバーオプションの理解を確認してください。
  • 反復と改善:エージェントコードを更新し、再デプロイし、再公開します(バージョン番号は必ず増やしてください!)。
  • 組織全体にスケールを広げる:エージェントの成功事例を共有し、採用を促進しましょう。

Troubleshooting

このセクションでは、エージェントをAzureにデプロイするときの一般的な問題について説明します。

Tip

Agent 365トラブルシューティングガイドには、Agent 365 の開発ライフサイクルの各段階に対応した高レベルのトラブルシューティング推奨事項、ベストプラクティス、トラブルシューティングコンテンツへのリンクが含まれています。

デプロイコマンドが失敗します

症状: Azure へのデプロイが失敗する。

一般的な原因と解決策:

  • ビルドエラー

    詳細なコンパイルエラーを確認するためにローカルでプロジェクトを再構築する方法:

    # .NET
    dotnet clean
    dotnet build --verbosity detailed
    
    # Python
    uv build
    
    # Node.js
    npm install
    npm run build
    
  • Azure認証の有効期限が切れています

    もう一度Azureにサインインしてください。

    az login
    az account show  # Verify correct subscription
    
  • ウェブアプリが作成されていません

    ターゲットが存在することを確認するWeb Appsを一覧表示します。

    # List Web Apps in resource group
    az webapp list --resource-group <your-resource-group> --output table
    
  • 展開ログを確認してください

    詳細な展開ログを見るには az webapp log tail コマンド を使用します:

    az webapp log tail --name <your-app-name> --resource-group <your-resource-group>
    
  • 検証:

    # Web App should be running
    az webapp show --name <your-app-name> --resource-group <your-resource-group> --query state
    # Expected: "Running"
    

ウェブアプリが停止されました

症状: デプロイは成功しますが、Web アプリは実行されていません。

ソリューション:az webapp startとaz webapp showを使用して Web アプリを起動し、実行されていることを確認します。

# Start the Web App
az webapp start --name <your-app> --resource-group <your-resource-group>

# Verify it's running
az webapp show --name <your-app> --resource-group <your-resource-group> --query state

起動時にアプリケーションがクラッシュする

症状: Web アプリは起動しますが、すぐにクラッシュします。ログにエラーが表示されます。

一般的な原因:

  • 依存関係がない - ビルド出力を確認して、必要なすべてのパッケージが含まれていることを確認します。
  • 環境変数がない - 必要なすべての設定が構成されていることを確認します。
  • ランタイム バージョンの不一致 - Azure ランタイムが開発環境と一致していることを確認します。
  • コード エラー - アプリケーション ログで特定の例外を確認します。

解決策:az webapp log tail、az webapp config appsettings list、az webapp config appsettings setコマンドを使ってログの閲覧、環境変数の確認、欠落変数の設定を行います。

# View application logs
az webapp log tail --name <your-app> --resource-group <your-resource-group>

# Check environment variables
az webapp config appsettings list --name <your-app> --resource-group <your-resource-group>

# Manually set a missing variable
az webapp config appsettings set --name <your-app> --resource-group <your-resource-group> --settings KEY=VALUE

メッセージングエンドポイントでの404エラー

症状: Webアプリは稼働していますが、エンドポイント /api/messages 404を返します。

Solution:

  1. エージェントコードのルート設定を確認してください。
  2. エンドポイントハンドラーが正しく登録されているか確認してください。
  3. 展開時に正しいエントリーポイントが指定されていることを確認してください。

エンドポイントに対して GET リクエストを送信してテストします。 az webapp config showコマンドを使ってウェブアプリの設定を確認してください。

curl https://<your-app-name>.azurewebsites.net/api/messages
az webapp config show --name <your-app> --resource-group <your-resource-group>

環境変数が設定されていないか、正しくない

症状: デプロイは成功しますが、エージェントは動作しません。ログに設定エラーが欠けている。

解決策: 環境変数の検証と更新。 az webapp config appsettings listとaz webapp config appsettings setコマンドを使って環境変数を確認し、欠落変数を設定してください。 その後、再展開します。

# List all app settings
az webapp config appsettings list --name <your-app> --resource-group <your-resource-group>

# Set a specific variable
az webapp config appsettings set --name <your-app> --resource-group <your-resource-group> --settings API_KEY=your-value

ビルドはローカルで成功しますが、Azureで失敗する

Symptom: Code はコンピューター上で正常にビルドされますが、Azureデプロイ中に失敗します。

ソリューション:

  • プラットフォーム固有の依存関係がないか確認してください

    • 一部のパッケージはプラットフォーム固有のビルドを持っています。
    • 依存関係が Linux をサポートしていることを確認してください(Azure Web Apps はデフォルトで Linux 上で実行されます)。
  • ランタイムバージョンが一致しているか確認してください

    これらのコマンドを実行します。

    # Check your local version
    dotnet --version  # .NET
    node --version    # Node.js
    python --version  # Python
    

    Azure ランタイムの Portal での比較: Settings>Configuration>General settings>Stack settings。

その他のヘルプについては、「 メッセージング エンドポイントのトラブルシューティング」を参照してください。