次の方法で共有


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 ロールを付与します。

  1. [アクセス制御 (IAM)] を選択します。

  2. [追加]>[ロールの割り当ての追加] を選択して、[ロールの割り当ての追加] ページを開きます。

  3. 次のロールを割り当てます。

    設定
    Role ストレージ BLOB データ共同作成者
    アクセスの割り当て先 ユーザー、グループ、またはサービス プリンシパル
    メンバー 診断サービスの信頼された Storage アクセス

    Azure portal のロールの割り当てページを示すスクリーンショット。

    割り当てられると、[ロールの割り当て] セクションでロールを確認できます。 ロールの割り当て後の IAM 画面を示すスクリーンショット。

注意

Private Link も使用する場合、仮想ネットワークから信頼された Microsoft サービスへの接続を許可するためのもう 1 つの構成が必要です。 詳細については、ストレージ ネットワーク セキュリティに関するドキュメントを参照してください。

.NET Profiler およびスナップショット デバッガーなど、コード レベルの診断用に BYOS を構成するには、次の 3 つのオプションがあります。

  • Azure PowerShell コマンドレット
  • Azure CLI
  • Azure Resource Manager のテンプレート

作業を開始する前に、Azure PowerShell 4.2.0 以上をインストールします

  1. Application Insights PowerShell 拡張機能をインストールします。

    Install-Module -Name Az.ApplicationInsights -Force
    
  2. Azure アカウント サブスクリプションでサインインします。

    Connect-AzAccount -Subscription "{subscription_id}"
    

    サインイン方法の詳細については、Connect-AzAccount に関するドキュメントを参照してください。

  3. 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
    
  4. ご使用のストレージ アカウントを 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 の構成における一般的な問題のトラブルシューティング

シナリオ: テンプレート スキーマ '{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/componentsapiVersion2015-05-01 であることを確認します。
  • リソース linkedStorageAccountapiVersion2020-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 を有効にした場合、診断サービスのストレージ アカウントの使用に戻り、収集されたデータを保存することはできますか?

"はい、できます。ただし、現時点では、BYOS からのデータ移行はサポートされていません。"

はい。

ストレージ アカウントにアクセスする方法

  1. 仮想マシンまたは Azure App Service 内で実行されるエージェントでは、成果物 (プロファイル、スナップショット、シンボル) をご使用のアカウント内の BLOB コンテナーにアップロードします。

    このプロセスでは、.NET Profiler またはスナップショット デバッガーに接続して、ご使用のストレージ アカウント内の新しい BLOB の Shared Access Signature トークンを取得する必要があります。

  2. .NET Profiler またはスナップショット デバッガー:

    • 受信 BLOB を分析します。
    • 分析結果とログ ファイルを BLOB ストレージに書き戻します。

    使用可能なコンピューティング容量に応じて、このプロセスはアップロード後いつでも発生する可能性があります。

  3. Profiler トレースまたはスナップショット デバッガー分析を表示すると、サービスにより、分析結果が BLOB ストレージから取り込まれます。

次のステップ