Realizar uma transferência sob demanda

Atualizado: novembro de 2015

Você pode usar as classes em Microsoft.WindowsAzure.Diagnostics.Management para executar uma transferência sob demanda de dados de diagnóstico. Uma transferência sob demanda pode ser concluída a partir da execução de código dentro de uma função, de outro aplicativo executado no Windows Azure ou de um aplicativo fora do Windows Azure. Antes de concluir as etapas nesta seção, você deverá inicializar o monitor de diagnóstico e especificar a conta de armazenamento para ser usada. Para fazer isso, consulte Habilitando o diagnóstico no Windows Azure.

Se estiver executando uma transferência sob demanda a partir do código executado fora do Windows Azure, deverá obter o identificador da implantação, o nome da função e o nome da instância de função para seu aplicativo registrando-os manualmente no portal.

  1. Fazer logon no portal.

  2. Clique em Serviços de Computação e expanda o nó para seu aplicativo.

  3. Clique na implantação para o aplicativo.

  4. Registre o valor da ID no painel Propriedades. Esse é o identificador de implantação de seu serviço hospedado.

  5. Expanda o nó de implantação e clique no nó da função para a função a partir da qual você quer coletar os dados de diagnóstico.

  6. Registre o valor do Nome no painel Propriedades. Esse é o nome da função.

  7. Expanda o nó de função e clique no nó para a instância de função.

  8. Registre o valor do Nome no painel Propriedades. Esse é o identificador da instância de função.

Se você quiser realizar uma transferência sob demanda de dentro de uma função em execução, poderá usar as propriedades da classe RoleInstanceDiagnosticManager.

noteObservação
Isso se aplica ao SDK 2.4 do Azure e inferior.

  1. Abra o arquivo de origem para o programa que você está usando para realizar a transferência.

  2. Verifique se o projeto referencia o arquivo Microsoft.WindowsAzure.Diagnostics.dll e se as seguintes instruções são adicionadas ao arquivo:

    
    using Microsoft.WindowsAzure.Diagnostics; 
    using Microsoft.WindowsAzure.Diagnostics.Management;
    
    
  3. Obtenha as credenciais de armazenamento da configuração. O exemplo de código a seguir mostra como usar o método Parse para obter as credenciais:

    var storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=AccountName;AccountKey=<AccountKey>");
    

    Para obter mais informações sobre como usar cadeias de conexão, consulte How to Configure Connection Strings.

  4. Crie uma instância da DeploymentDiagnosticManager. O exemplo de código a seguir mostra como criar uma nova instância usando o objeto da conta de armazenamento e o identificador de implantação:

    
    var diagManager = new DeploymentDiagnosticManager(storageAccount, "<DeploymentID>"); 
    
    

    Onde <DeploymentID> é o valor que você obteve no procedimento anterior.

  5. Crie um gerenciador de diagnóstico da instância de função. O exemplo de código a seguir mostra como criar esse gerenciador de diagnóstico:

    var roleInstDiagMgr = diagManager.GetRoleInstanceDiagnosticManager("<RoleName>", "<RoleInstanceID>");
    

    Onde <RoleName> e <RoleInstanceID> são os valores que você obteve no procedimento anterior.

  6. Especifique os logs que você deseja transferir. O exemplo de código a seguir mostra como transferir os logs do Windows Azure:

    DataBufferName dataBuffersToTransfer = DataBufferName.Logs;
    

    Para obter informações sobre os buffers de dados que podem ser adicionados, consulte DataBufferName.

  7. Especifique as opções de transferência. O exemplo de código a seguir mostra como transferir entradas de três horas atrás até agora:

    
    OnDemandTransferOptions transferOptions = new OnDemandTransferOptions();
    transferOptions.NotificationQueueName = "wad-on-demand-transfers";
    var timeInterval = new TimeSpan(3, 0, 0);
    transferOptions.From = DateTime.UtcNow.Subtract(timeInterval);
    transferOptions.To = DateTime.UtcNow;
    
    

    Para obter mais informações sobre as opções de transferência, consulte OnDemandTransferOptions.

  8. Solicite que os dados sejam transferidos. O exemplo de código a seguir mostra como começar a transferência utilizando os buffers de dados e as opções de transferência que foram definidas:

    Guid requestID = roleInstDiagMgr.BeginOnDemandTransfer(dataBuffersToTransfer, transferOptions);
    

Consulte também

Mostrar: