Configurar o BYOS para o Application Insights Profiler para .NET e o Depurador de Instantâneo

Quando você usa o Application Insights Profiler para .NET ou o Depurador de Instantâneo, os artefatos gerados pelo seu aplicativo são carregados por padrão nas contas de Armazenamento do Azure pela Internet pública. Para esses artefatos e contas de armazenamento, a Microsoft controla e cobre o custo de:

  • Processamento e análise.
  • Políticas de criptografia em repouso e gerenciamento de tempo de vida.

Enquanto isso, quando você "traz seu próprio armazenamento" (BYOS), os artefatos são carregados em uma conta de armazenamento que só você controla e cobre o custo de:

  • A política de criptografia em repouso e a política de gerenciamento de tempo de vida.
  • Acesso à rede.

Nota

O BYOS é necessário se você estiver habilitando o Azure Private Link ou chaves gerenciadas pelo cliente.

Neste guia, ficará a saber como:

  • Conceda aos Serviços de Diagnóstico acesso à sua conta de armazenamento.
  • Vincule sua conta de armazenamento ao recurso do Application Insights.
  • Saiba como sua conta de armazenamento é acessada.

Pré-requisitos

  • Verifique se você criou sua conta de armazenamento no mesmo local do recurso do Application Insights.
  • Se ativou a Ligação Privada, permita a ligação ao nosso Serviço Microsoft Fidedigno a partir da sua rede virtual.

Conceder acesso aos Serviços de Diagnóstico à sua conta de armazenamento

Uma conta de armazenamento BYOS está vinculada a um recurso do Application Insights. Comece concedendo a Storage Blob Data Contributor função ao aplicativo Microsoft Entra nomeado Diagnostic Services Trusted Storage Access por meio da página Controle de Acesso (IAM) em sua conta de armazenamento.

  1. Selecione Controlo de acesso (IAM) .

  2. Selecione Adicionar>atribuição de função para abrir a página Adicionar atribuição de função.

  3. Atribua a seguinte função.

    Definição Value
    Role Contribuidor de Dados de Blobs de Armazenamento
    Atribuir acesso a Usuário, grupo ou entidade de serviço
    Membros Serviços de diagnóstico Acesso confiável ao armazenamento

    Captura de tela que mostra a página de atribuição de função no portal do Azure.

    Uma vez atribuída, você pode ver a função na seção Atribuições de função. Captura de tela que mostra a tela do IAM após as atribuições de função.

Nota

Se você também estiver usando o Private Link, mais uma configuração será necessária para permitir a conexão com nosso Serviço Microsoft Confiável a partir de sua rede virtual. Para obter mais informações, consulte Documentação de segurança da rede de armazenamento.

Você tem três opções para configurar o BYOS para diagnósticos no nível de código, como o .NET Profiler e o Depurador de Instantâneo:

  • Cmdlets do Azure PowerShell
  • A CLI do Azure
  • Modelos do Azure Resource Manager

Antes de começar, instale o Azure PowerShell 4.2.0 ou superior.

  1. Instale a extensão PowerShell do Application Insights.

    Install-Module -Name Az.ApplicationInsights -Force
    
  2. Entre com sua assinatura de conta do Azure.

    Connect-AzAccount -Subscription "{subscription_id}"
    

    Para obter mais informações sobre como entrar, consulte a documentação do Connect-AzAccount.

  3. Remova qualquer conta de armazenamento anterior vinculada ao seu recurso do Application Insights.

    Padrão:

    Get-AzApplicationInsights -ResourceGroupName "{resource_group_name}" -Name "{application_insights_name}" | Remove-AzApplicationInsightsLinkedStorageAccount
    

    Exemplo:

    Get-AzApplicationInsights -ResourceGroupName "byos-test" -Name "byos-test-westus2-ai" | Remove-AzApplicationInsightsLinkedStorageAccount
    
  4. Conecte sua conta de armazenamento ao recurso do Application Insights.

    Padrão:

    $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
    

    Exemplo:

    $storageAccount = Get-AzStorageAccount -ResourceGroupName "byos-test" -Name "byosteststoragewestus2"
    Get-AzApplicationInsights -ResourceGroupName "byos-test" -Name "byos-test-westus2-ai" | New-AzApplicationInsightsLinkedStorageAccount -LinkedStorageAccountResourceId $storageAccount.Id
    

Resolução de Problemas

Solucione problemas comuns na configuração do BYOS.

Cenário: O esquema de modelo '{schema_uri}' não é suportado

Você recebeu um erro semelhante ao exemplo a seguir:

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.'.

Soluções

  • Certifique-se de que a $schema propriedade do modelo é válida. Deve seguir este padrão:

    https://schema.management.azure.com/schemas/{schema_version}/deploymentTemplate.json#
    
  • Certifique-se de que o schema_version do modelo está dentro dos valores válidos: 2014-04-01-preview, 2015-01-01, 2018-05-01, 2019-04-01, 2019-08-01.

Cenário: Nenhum provedor de recursos registrado encontrado para o local '{location}'

Você recebeu um erro semelhante ao exemplo a seguir:

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'."
  }
}'

Soluções

  • Certifique-se de que o apiVersion do recurso microsoft.insights/components é 2015-05-01.
  • Certifique-se de que o apiVersion do recurso linkedStorageAccount é 2020-03-01-preview.

Cenário: o local da conta de armazenamento deve corresponder ao local do componente Application Insights

Você recebeu um erro semelhante ao exemplo a seguir:

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"
      ]
    }
  }
}'

Solução

Verifique se o local do recurso do Application Insights é o mesmo da conta de armazenamento.

Perguntas mais frequentes

Esta seção fornece respostas para perguntas comuns sobre como configurar o BYOS para .NET Profiler e Snapshot Debugger.

Se eu habilitei o .NET Profiler/Snapshot Debugger e o BYOS, meus dados serão migrados para minha conta de armazenamento?

Não, não vai.

O BYOS funciona com criptografia em repouso e chaves gerenciadas pelo cliente?

Sim. Para ser mais preciso, o BYOS é um requisito para ter o .NET Profiler/Snapshot Debugger habilitado com chaves do gerenciador do cliente.

O BYOS funciona em um ambiente isolado da internet?

Sim. O BYOS é um requisito para cenários de rede isolados.

Sim, é possível.

Se eu habilitei o BYOS, posso voltar a usar contas de armazenamento dos Serviços de Diagnóstico para armazenar meus dados coletados?

Sim, você pode, mas atualmente não suportamos a migração de dados do seu BYOS.

Sim.

Como é acedida a minha conta de armazenamento?

  1. Os agentes em execução em suas máquinas virtuais ou no Serviço de Aplicativo do Azure carregam artefatos (perfis, instantâneos e símbolos) para contêineres de blob em sua conta.

    Esse processo envolve entrar em contato com o .NET Profiler ou o Depurador de Instantâneo para obter um token de assinatura de acesso compartilhado para um novo blob em sua conta de armazenamento.

  2. O .NET Profiler ou Depurador de Instantâneo:

    • Analisa o blob de entrada.
    • Escreva de volta os resultados da análise e os arquivos de log no armazenamento de blob.

    Dependendo da capacidade de computação disponível, esse processo pode ocorrer a qualquer momento após o upload.

  3. Quando você visualiza rastreamentos do Profiler ou análise do Depurador de Instantâneo, o serviço busca os resultados da análise do armazenamento de blobs.

Próximos passos