Configurar BYOS para Application Insights Profiler para .NET e Depurador de Instantâneos do Visual Studio

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

  • Processamento e análise.
  • Criptografia em repouso e políticas de gerenciamento de tempo de vida.

Enquanto isso, ao "trazer seu próprio armazenamento" (BYOS), os artefatos são carregados em uma conta de armazenamento que apenas você controla e pela qual arca com os custos:

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

Observação

O BYOS será necessário se você estiver habilitando o Link Privado do Azure ou chaves gerenciadas pelo cliente.

Neste guia, você aprenderá a:

  • Conceder acesso aos Serviços de Diagnóstico à sua conta de armazenamento.
  • Vincular sua conta de armazenamento com o recurso do Application Insights.
  • Saiba como sua conta de armazenamento é acessada.

Pré-requisitos

  • Verifique se você criou sua conta de armazenamento na mesma localização que o recurso do Application Insights.
  • Se você habilitou o Link Privado, permita a conexão com o Serviço Confiável da Microsoft a partir da sua rede virtual.

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

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

  1. Selecione IAM (Controle de acesso) .

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

  3. Atribua a função a seguir.

    Configuração Valor
    Função Colaborador de dados de blob de armazenamento
    Atribuir acesso a Usuário, grupo ou entidade de serviço
    Membros Acesso confiável ao armazenamento dos serviços de diagnóstico

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

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

Observação

Se você também estiver usando o Link Privado, será necessária uma configuração adicional para permitir a conexão com o nosso Serviço Confiável da Microsoft de sua Rede Virtual. ou para obter mais informações, confira a Documentação de segurança de rede de armazenamento.

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

  • 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 do PowerShell para Application Insights.

    Install-Module -Name Az.ApplicationInsights -Force
    
  2. Entre com as subscrição da conta do Azure.

    Connect-AzAccount -Subscription "{subscription_id}"
    

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

  3. Remova qualquer conta de armazenamento anterior vinculada ao 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. Conectar qualquer conta de armazenamento com o 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
    

Solução de problemas

Solucionar problemas comuns ao configurar o BYOS.

Cenário: não há suporte para o esquema de modelo '{schema_uri}'

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

  • Verifique se a propriedade $schema do modelo é válida. Ele deve seguir esse padrão:

    https://schema.management.azure.com/schemas/{schema_version}/deploymentTemplate.json#
    
  • Verifique se 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 foi encontrado para a localização '{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

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

Cenário: o local da conta de armazenamento deve corresponder ao local do componente do 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

A localização do recurso do Application Insights deve ser a mesma que a da conta de armazenamento.

Perguntas frequentes

Essa seção fornece respostas para perguntas comuns sobre a configuração do BYOS para o .NET Profiler e o Depurador de Instantâneos do Visual Studio.

Se eu habilitar o .NET Profiler/Depurador de Instantâneos do Visual Studio e o BYOS, meus dados serão migrados para minha conta de armazenamento?

Não.

O BYOS funciona com criptografia em repouso e chave gerenciada pelo cliente?

Sim. Para ser mais preciso, BYOS é um requisito para ter o .NET Profiler/Depurador de Instantâneos do Visual Studio habilitado com chaves do gerenciador de clientes.

O BYOS funciona em um ambiente isolado da internet?

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

Sim, é possível.

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

Sim, você pode, mas no momento não há suporte para migração de dados do seu BYOS.

Sim.

Como minha conta de armazenamento está acessível?

  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âneos do Visual Studio para obter um token de assinatura de acesso compartilhado para um novo blob na sua conta de armazenamento.

  2. O .NET Profiler ou Depurador de Instantâneos do Visual Studio:

    • Analisar o blob de entrada.
    • Gravar os resultados da análise e os arquivos de log no armazenamento de blobs.

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

  3. Quando você exibe os rastreamentos do Profiler ou a análise do Depurador de Instantâneos, o serviço busca os resultados da análise do Armazenamento de Blobs.

Próximas etapas