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 アプリをデプロイした後、次を行います。
App Service の Azure コントロール パネルに移動します。
[設定]>[Application Insights] ページの順に移動します。
ウィンドウの指示に従って新しいリソースを作成するか、既存の App Insights リソースを選択してアプリを監視します。
スナップショット デバッガー トグルを [オン] に切り替えます。
スナップショット デバッガーは、App Services のアプリ設定を使用して有効になりました。
別の種類の Azure サービスを実行している場合、他のサポート対象プラットフォームでスナップショット デバッガーを有効にする手順については次を参照してください。
- Azure 関数
- Azure Cloud Services
- Azure Service Fabric サービス
- Azure Virtual Machines と Virtual Machine Scale Sets
- オンプレミスの仮想マシンまたは物理マシン
他のクラウドに対してスナップショット デバッガーを有効にする
現在、エンドポイントの変更が必要なリージョンは Azure Government と 21Vianet によって運営される 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 をオンにするには:
Application Insights リソースの認証に使用するマネージド ID を作成して App Service に追加します。
Application Insights リソースで Microsoft Entra ID を構成してオンにします。 詳しくは、次のドキュメントをご覧ください。
次のアプリケーション設定を追加します。これは、使用するマネージド 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 でスナップショットを確認します。
- スナップショット デバッガーの問題のトラブルシューティングについては、スナップショット デバッガーのトラブルシューティングのページを参照してください。