BYOS を .NET 用 Application Insights Profiler およびスナップショット デバッガー用に構成する
.NET 用 Application Insights Profiler または スナップショット デバッガーを使用する場合、アプリケーションによって生成された成果物は、既定でパブリック インターネットを経由して Azure Storage のアカウントにアップロードされます。 これらの成果物とストレージ アカウントについて、Microsoft は次のコストを制御し、対象とします。
- 処理と解析。
- 保存時の暗号化と有効期間管理ポリシー。
一方、"ストレージ持ち込む" (BYOS) と、成果物は、自分だけが管理し、次のコストをカバーするストレージ アカウントにアップロードされます。
- 保存時の暗号化ポリシーと有効期間管理ポリシー。
- ネットワーク アクセス。
注意
Azure Private Link またはカスタマー マネージド キーを有効にする場合は、BYOS が必要です。
このガイドでは、以下の方法について説明します。
- 診断サービスにストレージ アカウントへのアクセスを許可する。
- ストレージ アカウントを Application Insights リソースにリンクする。
- ストレージ アカウントへのアクセス方法について確認する。
前提条件
- ストレージ アカウントが Application Insights リソースと同一の場所に作成されていることを確認します。
- Private Link を有効にした場合、仮想ネットワークから信頼された Microsoft サービスへの接続を許可します。
ストレージ アカウントに診断サービスへのアクセスを許可する
BYOS ストレージ アカウントは、Application Insights リソースにリンクされます。 まず、ストレージ アカウントの [アクセス制御 (IAM)] ページで Diagnostic Services Trusted Storage Access
という名前の Microsoft Entra アプリケーションに Storage Blob Data Contributor
ロールを付与します。
[アクセス制御 (IAM)] を選択します。
[追加]>[ロールの割り当ての追加] を選択して、[ロールの割り当ての追加] ページを開きます。
次のロールを割り当てます。
設定 値 Role ストレージ BLOB データ共同作成者 アクセスの割り当て先 ユーザー、グループ、またはサービス プリンシパル メンバー 診断サービスの信頼された Storage アクセス 割り当てられると、[ロールの割り当て] セクションでロールを確認できます。
注意
Private Link も使用する場合、仮想ネットワークから信頼された Microsoft サービスへの接続を許可するためのもう 1 つの構成が必要です。 詳細については、ストレージ ネットワーク セキュリティに関するドキュメントを参照してください。
ストレージ アカウントを Application Insights リソースにリンクする
.NET Profiler およびスナップショット デバッガーなど、コード レベルの診断用に BYOS を構成するには、次の 3 つのオプションがあります。
- Azure PowerShell コマンドレット
- Azure CLI
- Azure Resource Manager のテンプレート
作業を開始する前に、Azure PowerShell 4.2.0 以上をインストールします。
Application Insights PowerShell 拡張機能をインストールします。
Install-Module -Name Az.ApplicationInsights -Force
Azure アカウント サブスクリプションでサインインします。
Connect-AzAccount -Subscription "{subscription_id}"
サインイン方法の詳細については、Connect-AzAccount に関するドキュメントを参照してください。
Application Insights リソースにリンクされている以前のストレージ アカウントを削除します。
パターン:
Get-AzApplicationInsights -ResourceGroupName "{resource_group_name}" -Name "{application_insights_name}" | Remove-AzApplicationInsightsLinkedStorageAccount
例:
Get-AzApplicationInsights -ResourceGroupName "byos-test" -Name "byos-test-westus2-ai" | Remove-AzApplicationInsightsLinkedStorageAccount
ご使用のストレージ アカウントを Application Insights リソースに接続します。
パターン:
$storageAccount = Get-AzStorageAccount -ResourceGroupName "{resource_group_name}" -Name "{storage_account_name}" Get-AzApplicationInsights -ResourceGroupName "{resource_group_name}" -Name "{application_insights_name}" | New-AzApplicationInsightsLinkedStorageAccount -LinkedStorageAccountResourceId $storageAccount.Id
例:
$storageAccount = Get-AzStorageAccount -ResourceGroupName "byos-test" -Name "byosteststoragewestus2" Get-AzApplicationInsights -ResourceGroupName "byos-test" -Name "byos-test-westus2-ai" | New-AzApplicationInsightsLinkedStorageAccount -LinkedStorageAccountResourceId $storageAccount.Id
トラブルシューティング
BYOS の構成における一般的な問題のトラブルシューティング
- .NET Profiler の一般的なトラブルシューティングについては、Profiler のトラブルシューティングに関するドキュメントを参照してください。
- Visual Studio スナップショット デバッガーの一般的なトラブルシューティングについては、Visual Studio スナップショット デバッガーのトラブルシューティングに関するドキュメントを参照してください。
シナリオ: テンプレート スキーマ '{schema_uri}' がサポートされていない
次の例のようなエラーが発生しました。
New-AzResourceGroupDeployment : 11:53:49 AM - Error: Code=InvalidTemplate; Message=Deployment template validation failed: 'Template schema
'https://schema.management.azure.com/schemas/2020-01-01/deploymentTemplate.json#' is not supported. Supported versions are
'2014-04-01-preview,2015-01-01,2018-05-01,2019-04-01,2019-08-01'. Please see https://aka.ms/arm-template for usage details.'.
ソリューション
テンプレートの
$schema
プロパティが有効であることを確認します。 これは、このパターンに従う必要があります。https://schema.management.azure.com/schemas/{schema_version}/deploymentTemplate.json#
テンプレートの
schema_version
が有効な値2014-04-01-preview, 2015-01-01, 2018-05-01, 2019-04-01, 2019-08-01
内にあることを確認します。
シナリオ: 場所 '{location}' の登録済みのリソース プロバイダーが見つからない
次の例のようなエラーが発生しました。
New-AzResourceGroupDeployment : 6:18:03 PM - Resource microsoft.insights/components 'byos-test-westus2-ai' failed with message '{
"error": {
"code": "NoRegisteredProviderFound",
"message": "No registered resource provider found for location 'westus2' and API version '2020-03-01-preview' for type 'components'. The supported api-versions are '2014-04-01,
2014-08-01, 2014-12-01-preview, 2015-05-01, 2018-05-01-preview'. The supported locations are ', eastus, southcentralus, northeurope, westeurope, southeastasia, westus2, uksouth,
canadacentral, centralindia, japaneast, australiaeast, koreacentral, francecentral, centralus, eastus2, eastasia, westus, southafricanorth, northcentralus, brazilsouth, switzerlandnorth,
australiasoutheast'."
}
}'
ソリューション
- リソース
microsoft.insights/components
のapiVersion
が2015-05-01
であることを確認します。 - リソース
linkedStorageAccount
のapiVersion
が2020-03-01-preview
であることを確認します。
シナリオ: ストレージ アカウントの場所が Application Insights コンポーネントの場所と一致している必要がある
次の例のようなエラーが発生しました。
New-AzResourceGroupDeployment : 1:01:12 PM - Resource microsoft.insights/components/linkedStorageAccounts 'byos-test-centralus-ai/serviceprofiler' failed with message '{
"error": {
"code": "BadRequest",
"message": "Storage account location should match AI component location",
"innererror": {
"trace": [
"System.ArgumentException"
]
}
}
}'
解決策
Application Insights リソースの場所がストレージ アカウントと同じであることを確認します。
よく寄せられる質問
このセクションでは、.NET Profiler とスナップショット デバッガー用の BYOS の構成に関する一般的な質問に対する回答を示します。
.NET Profiler またはスナップショット デバッガーおよび BYOS を有効にした場合、データは自分のストレージ アカウントに移行されますか?
"いいえ、移行されません。 "
BYOS で、保存時の暗号化およびカスタマー マネージド キーを使用できますか?
はい。 正確には、カスタマー マネージド キーを使用して .NET Profiler またはスナップショット デバッガーを有効にするには、BYOS が必須です。
BYOS は、インターネットから分離された環境で動作しますか?
はい。 分離されたネットワーク シナリオには、BYOS が必須です。
BYOS は、カスタマー マネージド キーと Private Link の両方を有効にした場合に動作しますか?
はい、できます。
BYOS を有効にした場合、診断サービスのストレージ アカウントの使用に戻り、収集されたデータを保存することはできますか?
"はい、できます。ただし、現時点では、BYOS からのデータ移行はサポートされていません。"
BYOS を有効にした後、ストレージとネットワークに関連するすべてのコストは引き継がれますか?
はい。
ストレージ アカウントにアクセスする方法
仮想マシンまたは Azure App Service 内で実行されるエージェントでは、成果物 (プロファイル、スナップショット、シンボル) をご使用のアカウント内の BLOB コンテナーにアップロードします。
このプロセスでは、.NET Profiler またはスナップショット デバッガーに接続して、ご使用のストレージ アカウント内の新しい BLOB の Shared Access Signature トークンを取得する必要があります。
.NET Profiler またはスナップショット デバッガー:
- 受信 BLOB を分析します。
- 分析結果とログ ファイルを BLOB ストレージに書き戻します。
使用可能なコンピューティング容量に応じて、このプロセスはアップロード後いつでも発生する可能性があります。
Profiler トレースまたはスナップショット デバッガー分析を表示すると、サービスにより、分析結果が BLOB ストレージから取り込まれます。