Azure App Service で .NET アプリでスナップショット デバッガーを有効にする

スナップショット デバッガーは、現在、Windows サービス プランの Azure App Service で実行されている ASP.NET アプリと ASP.NET Core アプリでサポートされています。

Note

スナップショット デバッガーを使用する場合は、Basic サービス レベル以上でアプリケーションを実行することをお勧めします。 ほとんどのアプリケーションの場合、Free および Shared サービス レベルでは、スナップショットを保存するための十分なメモリまたはディスク領域がありません。 従量課金レベルは、現在、スナップショット デバッガーでは使用できません。

スナップショット デバッガーを有効にする

スナップショット デバッガーは App Services ランタイムの一部としてプレインストールされますが、App Service アプリのスナップショットを取得するには、スナップショット デバッガーを有効にする必要があります。 アプリでスナップショット デバッガーを有効にするには、次の手順に従います。

注意

プレビュー版の .NET Core を使用している場合、またはアプリケーションで、(依存アセンブリを介して直接または間接的に) Application Insights SDK が参照されている場合は、他の環境用のスナップショット デバッガーを有効にするための手順に従って、Microsoft.ApplicationInsights.SnapshotCollector NuGet パッケージをアプリケーションに含めます。

Note

Application Insights スナップショット デバッガーのコード不要のインストールは、.NET Core サポート ポリシーに従います。 サポートされているランタイムの詳細については、.Net Core サポート ポリシーに関するページを参照してください。

.NET アプリをデプロイした後、次を行います。

  1. App Service の Azure コントロール パネルに移動します。

  2. [設定]>[Application Insights] ページの順に移動します。

    Screenshot showing the Enable App Insights on App Services portal.

  3. ウィンドウの指示に従って新しいリソースを作成するか、既存の App Insights リソースを選択してアプリを監視します。

  4. スナップショット デバッガー トグルを [オン] に切り替えます。

    Screenshot showing how to add App Insights site extension.

  5. スナップショット デバッガーは、App Services のアプリ設定を使用して有効になりました。

    Screenshot showing App Setting for Snapshot Debugger.

別の種類の Azure サービスを実行している場合、他のサポート対象プラットフォームでスナップショット デバッガーを有効にする手順については次を参照してください。

他のクラウドに対してスナップショット デバッガーを有効にする

現在、エンドポイントの変更が必要なリージョンは Azure Government21Vianet によって運営される Microsoft Azure のみであり、Application Insights の接続文字列が利用されます。

接続文字列プロパティ 米国政府のクラウド China Cloud
SnapshotEndpoint https://snapshot.monitor.azure.us https://snapshot.monitor.azure.cn

その他の接続のオーバーライドの詳細については、Application Insights のドキュメントを参照してください。

スナップショット インジェストに対して Microsoft Entra 認証を有効にする

Application Insights スナップショット デバッガーではスナップショット取り込みのための Microsoft Entra 認証がサポートされています。 つまり、アプリケーションのすべてのスナップショットを取り込むには、アプリケーションが認証され、必要なアプリケーション設定をスナップショット デバッガー エージェントに提供する必要があります。

本日より、スナップショット デバッガーが Microsoft Entra 認証をサポートするのは、アプリケーションで Application Insights SDK を使用して、Microsoft Entra ID を参照および構成するときのみです。

スナップショット インジェストの Microsoft Entra ID をオンにするには:

  1. Application Insights リソースの認証に使用するマネージド ID を作成して App Service に追加します。

    1. システム割り当てマネージド ID については、次のドキュメントを参照してください。

    2. ユーザー割り当てマネージド ID については、次のドキュメントを参照してください。

  2. Application Insights リソースで Microsoft Entra ID を構成してオンにします。 詳しくは、次のドキュメントをご覧ください。

  3. 次のアプリケーション設定を追加します。これは、使用するマネージド ID をスナップショット デバッガー エージェントに知らせるために使用します。

システム割り当て ID の場合:

アプリ設定
APPLICATIONINSIGHTS_AUTHENTICATION_STRING Authorization=AD

ユーザー割り当て ID の場合:

アプリ設定
APPLICATIONINSIGHTS_AUTHENTICATION_STRING Authorization=AD;ClientID={ユーザー割り当て ID のクライアント ID}

スナップショット デバッガーを無効にする

スナップショット デバッガーを無効にするには、有効にする手順を繰り返します。 ただし、スナップショット デバッガー トグルを [オフ] に切り替えます。

Azure Resource Manager テンプレート

Azure App Service の場合、Azure Resource Manager テンプレート内でアプリ設定を指定して、スナップショット デバッガーと Profiler を有効にできます。 次に例を示します。

{
  "apiVersion": "2015-08-01",
  "name": "[parameters('webSiteName')]",
  "type": "Microsoft.Web/sites",
  "location": "[resourceGroup().location]",
  "dependsOn": [
    "[variables('hostingPlanName')]"
  ],
  "tags": { 
    "[concat('hidden-related:', resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName')))]": "empty",
    "displayName": "Website"
  },
  "properties": {
    "name": "[parameters('webSiteName')]",
    "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName'))]"
  },
  "resources": [
    {
      "apiVersion": "2015-08-01",
      "name": "appsettings",
      "type": "config",
      "dependsOn": [
        "[parameters('webSiteName')]",
        "[concat('AppInsights', parameters('webSiteName'))]"
      ],
      "properties": {
        "APPINSIGHTS_INSTRUMENTATIONKEY": "[reference(resourceId('Microsoft.Insights/components', concat('AppInsights', parameters('webSiteName'))), '2014-04-01').InstrumentationKey]",
        "APPINSIGHTS_PROFILERFEATURE_VERSION": "1.0.0",
        "APPINSIGHTS_SNAPSHOTFEATURE_VERSION": "1.0.0",
        "DiagnosticServices_EXTENSION_VERSION": "~3",
        "ApplicationInsightsAgent_EXTENSION_VERSION": "~2"
      }
    }
  ]
},

サポートされていないシナリオ

Snapshot Collector がサポートされていないシナリオを以下に示します。

シナリオ 副作用 推奨
アプリケーションで Snapshot Collector SDK を直接使用していて (.csproj)、詳細オプション "Interop" を有効にしている。 ローカルの Application Insights SDK (Snapshot Collector テレメトリを含む) は失われるため、スナップショットは使用できません。
起動時にアプリケーションが System.ArgumentException: telemetryProcessorTypedoes not implement ITelemetryProcessor. でクラッシュする可能性があります。
Application Insights 機能 "Interop" に関する詳細を確認してください。
詳細オプション "Interop" を使用している場合、コードレス Snapshot Collector インジェクション (Azure portal から有効にする) を使用します。

次のステップ

  • 例外をトリガーできるアプリケーションへのトラフィックを生成します。 その後、Application Insights インスタンスにスナップショットが送信がされるまで 10 ~ 15 分待機します。
  • Azure portal でスナップショットを確認します。
  • スナップショット デバッガーの問題のトラブルシューティングについては、スナップショット デバッガーのトラブルシューティングのページを参照してください。