Manter saída de trabalhos e tarefas
Uma tarefa em execução no Azure Batch pode produzir dados de saída quando é executada. Muitas vezes, os dados de saída da tarefa têm de ser armazenados para obtenção por outras tarefas na tarefa, a aplicação cliente que executou a tarefa ou ambas. As tarefas escrevem dados de saída no sistema de ficheiros de um nó de computação do Batch, mas todos os dados no nó são perdidos quando são reproduzidos ou quando o nó sai do conjunto. As tarefas também podem ter um período de retenção de ficheiros, após o qual os ficheiros criados pela tarefa são eliminados. Por estes motivos, é importante manter a saída da tarefa de que precisará mais tarde para um arquivo de dados, como o Armazenamento do Azure.
Para obter as opções da conta de armazenamento no Batch, veja Contas do Batch e contas de Armazenamento do Azure.
Alguns exemplos comuns da saída da tarefa incluem:
- Ficheiros criados quando a tarefa processa dados de entrada.
- Ficheiros de registo associados à execução de tarefas.
Este artigo descreve várias opções para manter os dados de saída. Pode manter os dados de saída de tarefas e tarefas do Batch para o Armazenamento do Azure ou outros arquivos.
Opções para a saída persistente
Existem várias formas de manter os dados de saída. Escolha o melhor método para o seu cenário:
- Utilize a API do serviço Batch.
- Utilize a biblioteca de Convenções de Ficheiros do Batch para .NET.
- Utilize a biblioteca de Convenções de Ficheiros do Batch para aplicações C# e .NET.
- Utilize a norma Convenções de Ficheiros do Batch para idiomas que não .NET.
- Utilize uma solução de movimento de ficheiros personalizada.
API do serviço Batch
Pode utilizar a API do serviço Batch para manter os dados de saída. Especifique ficheiros de saída no Armazenamento do Azure para dados de tarefas quando adiciona uma tarefa a uma tarefa ou adiciona uma coleção de tarefas a uma tarefa.
Para obter mais informações, veja Persist task data to Azure Storage with the Batch service API (Persistir dados de tarefas no Armazenamento do Azure com a API do serviço Batch).
Biblioteca de Convenções de Ficheiros do Batch
A norma Convenções de Ficheiros do Batch é um conjunto opcional de convenções para atribuir nomes a ficheiros de saída de tarefas no Armazenamento do Azure. A norma fornece convenções de nomenclatura para o contentor de destino de um ficheiro e o caminho do blob, com base nos nomes da tarefa e da tarefa.
É opcional utilizar a norma Convenções de Ficheiros para atribuir nomes aos ficheiros de dados de saída. Em alternativa, pode optar por atribuir um nome ao contentor de destino e ao caminho do blob. Se utilizar a norma Convenções de Ficheiros, pode ver os ficheiros de saída no portal do Azure.
Se estiver a criar uma solução do Batch com C# e .NET, pode utilizar a biblioteca de Convenções de Ficheiros do Batch para .NET. A biblioteca move os ficheiros de saída para o Armazenamento do Azure e atribui nomes a contentores e blobs de destino de acordo com a norma Convenções de Ficheiros do Batch.
Para obter mais informações, veja Persist job and task data to Azure Storage with the Batch File Conventions library for .NET (Manter os dados de tarefas e tarefas no Armazenamento do Azure com a biblioteca de Convenções de Ficheiros do Batch para .NET).
Norma de Convenções de Ficheiros do Batch
Se estiver a utilizar um idioma diferente do .NET, pode implementar a norma Batch File Conventions na sua própria aplicação. Utilize esta abordagem quando:
- Quer utilizar um esquema de nomenclatura comum.
- Quer ver o resultado da tarefa no portal do Azure.
Solução de movimento de ficheiros personalizado
Também pode implementar a sua própria solução de movimento de ficheiros completa. Utilize esta abordagem quando:
- Quer manter os dados de tarefas num arquivo de dados diferente do Armazenamento do Azure. Por exemplo, quer carregar ficheiros para um arquivo de dados, como o SQL do Azure ou o Azure DataLake. Crie um script personalizado ou executável para carregar para essa localização. Em seguida, chame o script personalizado ou executável na linha de comandos depois de executar o executável principal. Por exemplo, num nó do Windows, chame
doMyWork.exe && uploadMyFilesToSql.exe
. - Quer fazer o ponto de verificação ou o carregamento antecipado dos resultados iniciais.
- Quer manter o controlo granular sobre o processamento de erros. Por exemplo, quer utilizar ações de dependência de tarefas para efetuar determinadas ações de carregamento com base em códigos de saída de tarefas específicos.
Considerações de design
Quando conceber a sua solução do Batch, considere os seguintes fatores.
Os nós de computação são muitas vezes transitórios, especialmente em conjuntos do Batch com o dimensionamento automático ativado. Só pode ver o resultado de uma tarefa:
- Enquanto o nó onde a tarefa está em execução existe.
- Durante o período de retenção de ficheiros que definiu para a tarefa.
Quando vê uma tarefa do Batch no portal do Azure e seleciona Ficheiros no nó, vê todos os ficheiros dessa tarefa e não apenas os ficheiros de saída. Para obter o resultado da tarefa diretamente a partir dos nós de computação no conjunto, precisa do nome do ficheiro e da respetiva localização de saída no nó.
Se quiser manter os dados de saída da tarefa mais longos, configure a tarefa para carregar os respetivos ficheiros de saída para um arquivo de dados. É recomendado utilizar o armazenamento do Azure como arquivo de dados. Existe integração para escrever dados de saída de tarefas no Armazenamento do Azure na API do serviço Batch. Pode utilizar outras opções de armazenamento durável para manter os seus dados. No entanto, tem de escrever a lógica da aplicação para outras opções de armazenamento.
Para ver os dados de saída no Armazenamento do Azure, utilize o portal do Azure ou uma aplicação cliente do Armazenamento do Azure, como Explorador de Armazenamento do Azure. Repare na localização do ficheiro de saída e aceda diretamente a essa localização.