BYOS を Application Insights Profiler および Visual Studio スナップショット デバッガー用に構成する

Application Insights Profiler または Visual Studio スナップショット デバッガーを使用する場合、アプリケーションによって生成された成果物は、既定でパブリック インターネットを経由して Azure ストレージ アカウントにアップロードされます。 これらの成果物とストレージ アカウントについて、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 アクセス

    Screenshot that shows the Add role assignment page in the Azure portal.

    割り当てられると、[ロールの割り当て] セクションでロールを確認できます。 Screenshot that shows the IAM screen after Role assignments.

Note

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

Profiler および Visual Studio スナップショット デバッガーなど、コード レベルの診断用に 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 リソースの場所がストレージ アカウントと同じであることを確認します。

よく寄せられる質問

このセクションでは、Profiler と Visual Studio スナップショット デバッガー用の BYOS の構成に関する一般的な質問に対する回答を示します。

Profiler/Visual Studio スナップショット デバッガーおよび BYOS を有効にした場合、データは自分のストレージ アカウントに移行されますか?

"いいえ、移行されません。 "

BYOS で、保存時の暗号化およびカスタマー マネージド キーを使用できますか?

はい。 正確には、カスタマー マネージド キーを使用して Profiler またはスナップショット デバッガーを有効にするには、BYOS が必須です。

BYOS は、インターネットから分離された環境で動作しますか?

はい。 分離されたネットワーク シナリオには、BYOS が必須です。

はい、できます。

BYOS を有効にした場合、診断サービスのストレージ アカウントの使用に戻り、収集されたデータを保存することはできますか?

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

はい。

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

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

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

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

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

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

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

次のステップ