Persistir saída de tarefa e de trabalho

Uma tarefa em execução em lote do Azure pode produzir dados de saída quando ele é executado. Com frequência, os dados de saída precisam ser armazenados para a recuperação por outras tarefas no trabalho, o aplicativo cliente que executou o trabalho, ou ambos. As tarefas gravam dados de saída no sistema de arquivos de um nó de computação do Lote, mas todos os dados no nó serão perdidos quando ele for reimaginado ou quando o nó deixar o pool. As tarefas também podem ter um período de retenção de arquivo, após o qual os arquivos criados pela tarefa são excluídos. Por esses motivos, é importante manter a saída da tarefa que você vai precisar posteriormente para um repositório de dados, como o Armazenamento do Azure.

Para opções de conta de armazenamento do Lote, confira Contas do Lote e contas do Armazenamento do Azure.

Alguns exemplos comuns de saída de tarefa incluem:

  • Arquivos criados quando a tarefa processa dados de entrada.
  • Arquivos de log associados à execução da tarefa.

Este artigo descreve várias opções para manter os dados de saída. Você pode persistir dados de saída de tarefas e trabalhos do Lote para o Armazenamento Azure ou outros armazenamentos.

Opções para manter a saída

Há várias maneiras de persistir dados de saída. Escolha o melhor método para seu cenário:

API de serviço do Lote

Você pode usar a API de serviço do Lote para persistir os dados de saída. Especifique arquivos de saída no Armazenamento do Microsoft Azure para dados da tarefa quando você adiciona uma tarefa a um trabalho ou adiciona uma coleção de tarefas a um trabalho.

Para obter mais informações, consulte Manter dados de tarefa no Armazenamento do Azure com a API de serviço em Lote.

Biblioteca de Convenções de Arquivo do Lote

O padrão de Convenções de Arquivo do Lote é um conjunto opcional de convenções de nomenclatura de arquivos de saída de tarefa no Armazenamento do Azure. O padrão fornece convenções de nomenclatura para o contêiner de destino de um arquivo e o caminho do blob com base nos nomes do trabalho e da tarefa.

É opcional usar o padrão convenções de arquivo para nomear seus arquivos de dados de saída. Você pode optar por nomear o contêiner de destino e o caminho do blob. Se você usar o padrão convenções de arquivo, poderá visualizar os arquivos de saída no portal do Azure.

Se você estiver criando uma solução do Lote com C# e .NET, poderá usar a biblioteca convenções de arquivo do Lote para .NET. A biblioteca move os arquivos de saída para o Armazenamento do Azure e nomeia contêineres de destino e blobs de acordo com o padrão de Convenções de Arquivo do Lote.

Para obter mais informações, confira Manter os dados de trabalho e tarefa no Armazenamento do Azure com a biblioteca de Convenções de Arquivo em Lotes para o .NET.

Padrão de Convenções do Arquivo em Lotes

Se você estiver usando uma linguagem diferente de .NET, poderá implementar o padrão de Convenções de Arquivo em Lotes em seu próprio aplicativo. Use esta abordagem quando:

  • Você deseja usar um esquema de nomenclatura comum.
  • Você desejar exibir a saída da tarefa no portal do Azure.

Solução de movimentação de arquivo personalizada

Você também pode implementar sua própria solução de movimentação de arquivo completa. Use esta abordagem quando:

  • Você desejar manter os dados de tarefa em um armazenamento de dados diferente do Armazenamento do Azure. Por exemplo, você deseja carregar arquivos em um armazenamento de dados como o SQL do Azure ou o Azure DataLake. Crie um script personalizado ou executável para carregar nesse local. Em seguida, chame o script personalizado ou executável na linha de comando depois de executar o executável primário. Por exemplo, em um nó Windows, chame doMyWork.exe && uploadMyFilesToSql.exe.
  • Você quer fazer o ponto de verificação ou o carregamento antecipado dos resultados iniciais.
  • Você deseja manter controle granular sobre o tratamento de erro. Por exemplo, você deseja usar ações de dependência de tarefa para tomar determinadas ações de upload com base em códigos de saída de tarefa específicos.

Considerações sobre o design

Ao projetar sua solução do Lote, considere os seguintes fatores.

Nós de computação geralmente são transitórios, especialmente em pools do Lote com o dimensionamento automático habilitado. Você só pode ver a saída de uma tarefa:

  • Enquanto o nó em que a tarefa está em execução existe.
  • Durante o período de retenção de arquivo que você definiu para a tarefa.

Quando você visualizar uma tarefa do Lote no portal do Azure e selecionar Arquivos no nó, verá todos os arquivos dessa tarefa, não apenas os arquivos de saída. Para recuperar a saída da tarefa diretamente dos nós de computação no pool, você precisará do nome do arquivo e do local de saída no nó.

Se você quiser manter os dados de saída da tarefa por mais tempo, configure a tarefa para carregar seus arquivos de saída em um armazenamento de dados. É recomendável usar o armazenamento do Azure como o armazenamento de dados. Há integração para escrever dados de saída de tarefa para o Armazenamento do Azure na API do serviço do Lote. Você pode usar outras opções de armazenamento duráveis para manter seus dados. No entanto, você precisará escrever a lógica do aplicativo para outras opções de armazenamento por conta própria.

Para visualizar os dados de saída no Armazenamento do Azure, use o portal do Azure ou um aplicativo cliente do Azure Armazenamento, como Gerenciador de Armazenamento do Azure. Anote o local do arquivo de saída e acesse esse local diretamente.

Próxima etapa