BatchJobManagerTask interface
Especifica detalhes de uma tarefa do Gerenciador de Trabalhos. A Tarefa Gerenciador de Trabalhos é iniciada automaticamente quando o Trabalho é criado. O serviço do Lote tenta agendar a Tarefa do Gerenciador de Trabalho antes de qualquer outra Tarefa no Trabalho. Ao reduzir um pool, o serviço Lote tenta preservar nós em que as Tarefas do Gerenciador de Trabalho estão em execução pelo maior tempo possível (ou seja, nós de computação executando tarefas 'normais' são removidos antes que nós de computação executem tarefas do Gerenciador de Trabalho). Quando uma tarefa do Gerenciador de Trabalhos falha e precisa ser reiniciada, o sistema tenta agendá-la com a prioridade mais alta. Se não houver nós de computação ociosos disponíveis, o sistema poderá encerrar uma das Tarefas em execução no Pool e devolvê-la à fila para abrir espaço para que a Tarefa do Gerenciador de Trabalho seja reiniciada. Observe que uma tarefa do Gerenciador de Trabalhos em um trabalho não tem prioridade sobre tarefas em outros trabalhos. Em Trabalhos, apenas as prioridades de nível de trabalho são observadas. Por exemplo, se um Job Manager em um trabalho de prioridade 0 precisar ser reiniciado, ele não deslocará tarefas de um trabalho de prioridade 1. O Lote tentará novamente tarefas quando uma operação de recuperação for disparada em um nó. Exemplos de operações de recuperação incluem (mas não se limitam a) quando um nó não íntegro é reinicializado ou um Nó de Computação desapareceu devido a uma falha de host. As novas tentativas devido às operações de recuperação são independentes e não são contadas em relação ao maxTaskRetryCount. Mesmo que o maxTaskRetryCount seja 0, uma repetição interna devido a uma operação de recuperação poderá ocorrer. Por isso, todas as tarefas devem ser idempotentes. Isso significa que as tarefas precisam tolerar ser interrompidas e reiniciadas sem causar dados corrompidos ou duplicados. A melhor prática para tarefas de execução longa é usar alguma forma de ponto de verificação.
Propriedades
| allow |
Se a Tarefa do Gerenciador de Jobs pode rodar em um Nó de Computação Spot/Baixa Prioridade. O valor padrão é true. |
| application |
Uma lista de Pacotes de Aplicação que o serviço Batch irá implantar no Nó de Computação antes de executar a linha de comando. Pacotes de Aplicação são baixados e implantados em um diretório compartilhado, não no diretório de trabalho Tarefa. Portanto, se um Pacote de Aplicação referenciado já estiver no Nó de Computação e atualizado, ele não é baixado novamente; a cópia existente no Nó de Computação é utilizada. Se um Pacote de Aplicação referenciado não puder ser instalado, por exemplo, porque o pacote foi excluído ou porque o download falhou, a Tarefa falha. |
| command |
A linha de comando da Tarefa do Gerenciador de Jobs. A linha de comando não é executada em um shell e, portanto, não pode aproveitar os recursos do shell, como expansão de variável de ambiente. Se quiser aproveitar esses recursos, deve invocar o shell na linha de comando, por exemplo, usando "cmd /c MyCommand" em Windows ou "/bin/sh -c MyCommand" no Linux. Se a linha de comando se referir a caminhos de arquivo, ela deverá usar um caminho relativo (relativo ao diretório de trabalho da Tarefa) ou usar a variável de ambiente fornecida pelo Lote (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables). |
| constraints | Restrições que se aplicam à Tarefa do Gerenciador de Funções. |
| container |
As configurações do contêiner sob o qual a Tarefa do Gerenciador de Jobs é executada. Se o pool que executará essa tarefa tiver containerConfiguration ativado, isso também deve ser definido. Se o pool que executará essa tarefa não tiver containerConfiguration ativado, isso não deve ser definido. Quando isso é especificado, todos os diretórios recursivamente abaixo do AZ_BATCH_NODE_ROOT_DIR (a raiz dos diretórios Lote do Azure no nó) são mapeados no contêiner, todas as variáveis do ambiente Tarefa são mapeadas no contêiner, e a linha de comando Tarefa é executada no contêiner. Arquivos produzidos no contêiner fora do AZ_BATCH_NODE_ROOT_DIR podem não ser refletidos no disco hospedeiro, o que significa que APIs de arquivos Batch não conseguirão acessar esses arquivos. |
| display |
O nome de exibição da tarefa do Gerenciador de Trabalhos. Não precisa ser único e pode conter quaisquer caracteres Unicode até um comprimento máximo de 1024. |
| environment |
Uma lista de configurações de variáveis de ambiente para a Tarefa do Gerenciador de Trabalhos. |
| id | Uma string que identifica de forma única a Tarefa do Gerenciador de Jobs dentro da Job. O ID pode conter qualquer combinação de caracteres alfanuméricos, incluindo hífens e sublinhados, e não pode conter mais de 64 caracteres. |
| kill |
Se a conclusão da Tarefa do Gerenciador de Trabalho significa a conclusão de toda a Tarefa. Se for verdade, quando a tarefa do Gerenciador de Jobs for concluída, o serviço Batch marca o Job como completo. Se houver Tarefas ainda em execução neste momento (exceto a Liberação de Trabalho), essas Tarefas são encerradas. Se for falso, a conclusão da Tarefa do Gerenciador de Tarefas não afeta o status do Trabalho. Nesse caso, você deve usar o atributo onAllTasksComplete para encerrar o Job, ou fazer com que um cliente ou usuário termine o Job explicitamente. Um exemplo disso é se o Gerenciador de Tarefas cria um conjunto de Tarefas, mas depois não assume mais nenhum papel na execução delas. O valor padrão é true. Se você está usando os atributos onAllTasksComplete e onTaskFailure para controlar a vida útil do trabalho, e usando a tarefa do Gerenciador de Jobs apenas para criar as tarefas para o trabalho (não para monitorar o progresso), então é importante definir killJobOnCompletion como false. |
| output |
Uma lista de arquivos que o serviço Batch enviará do Nó de Computação após executar a linha de comando. Para Tarefas de múltiplas instâncias, os arquivos só serão carregados do Nó de Computação onde a Tarefa principal é executada. |
| required |
O número de espaços de agendamento que a Tarefa precisa para executar. O valor padrão é 1. Uma Tarefa só pode ser agendada para rodar em um nó de computação se o nó tiver vagas de agendamento livres suficientes disponíveis. Para Tarefas multiinstância, essa propriedade não é suportada e não deve ser especificada. |
| resource |
Uma lista de arquivos que o serviço do Lote baixará no Nó de Computação antes de executar a linha de comando. Os arquivos listados sob esse elemento estão localizados no diretório de trabalho da Tarefa. Há um tamanho máximo para a lista de arquivos de recurso. Quando o tamanho máximo for excedido, a solicitação falhará e o código de erro de resposta será RequestEntityTooLarge. Se isso ocorrer, a coleção de ResourceFiles deverá ser reduzida em tamanho. Isso pode ser feito usando arquivos .zip, pacotes de aplicativos ou contêineres do Docker. |
| run |
Se a Tarefa do Gerenciador de Jobs requer uso exclusivo do Nó de Computação onde ela é executada. Se for verdade, nenhuma outra Tarefa será executada no mesmo nó enquanto o Gerenciador de Jobs estiver rodando. Se for falso, outras Tarefas podem ser executadas simultaneamente com o Gerenciador de Jobs em um Nó de Computação. A Tarefa do Gerenciador de Trabalhos normalmente conta contra o limite concorrente de Tarefas do Nó de Computação, então isso só é relevante se o Nó de Processamento permitir múltiplas Tarefas simultâneas. O valor padrão é true. |
| user |
A identidade do usuário sob a qual a Tarefa do Gerenciador de Jobs é executada. Se omitida, a Tarefa roda como um usuário não administrativo exclusivo da Tarefa. |
Detalhes da propriedade
allowLowPriorityNode
Se a Tarefa do Gerenciador de Jobs pode rodar em um Nó de Computação Spot/Baixa Prioridade. O valor padrão é true.
allowLowPriorityNode?: boolean
Valor da propriedade
boolean
applicationPackageReferences
Uma lista de Pacotes de Aplicação que o serviço Batch irá implantar no Nó de Computação antes de executar a linha de comando. Pacotes de Aplicação são baixados e implantados em um diretório compartilhado, não no diretório de trabalho Tarefa. Portanto, se um Pacote de Aplicação referenciado já estiver no Nó de Computação e atualizado, ele não é baixado novamente; a cópia existente no Nó de Computação é utilizada. Se um Pacote de Aplicação referenciado não puder ser instalado, por exemplo, porque o pacote foi excluído ou porque o download falhou, a Tarefa falha.
applicationPackageReferences?: BatchApplicationPackageReference[]
Valor da propriedade
commandLine
A linha de comando da Tarefa do Gerenciador de Jobs. A linha de comando não é executada em um shell e, portanto, não pode aproveitar os recursos do shell, como expansão de variável de ambiente. Se quiser aproveitar esses recursos, deve invocar o shell na linha de comando, por exemplo, usando "cmd /c MyCommand" em Windows ou "/bin/sh -c MyCommand" no Linux. Se a linha de comando se referir a caminhos de arquivo, ela deverá usar um caminho relativo (relativo ao diretório de trabalho da Tarefa) ou usar a variável de ambiente fornecida pelo Lote (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables).
commandLine: string
Valor da propriedade
string
constraints
Restrições que se aplicam à Tarefa do Gerenciador de Funções.
constraints?: BatchTaskConstraints
Valor da propriedade
containerSettings
As configurações do contêiner sob o qual a Tarefa do Gerenciador de Jobs é executada. Se o pool que executará essa tarefa tiver containerConfiguration ativado, isso também deve ser definido. Se o pool que executará essa tarefa não tiver containerConfiguration ativado, isso não deve ser definido. Quando isso é especificado, todos os diretórios recursivamente abaixo do AZ_BATCH_NODE_ROOT_DIR (a raiz dos diretórios Lote do Azure no nó) são mapeados no contêiner, todas as variáveis do ambiente Tarefa são mapeadas no contêiner, e a linha de comando Tarefa é executada no contêiner. Arquivos produzidos no contêiner fora do AZ_BATCH_NODE_ROOT_DIR podem não ser refletidos no disco hospedeiro, o que significa que APIs de arquivos Batch não conseguirão acessar esses arquivos.
containerSettings?: BatchTaskContainerSettings
Valor da propriedade
displayName
O nome de exibição da tarefa do Gerenciador de Trabalhos. Não precisa ser único e pode conter quaisquer caracteres Unicode até um comprimento máximo de 1024.
displayName?: string
Valor da propriedade
string
environmentSettings
Uma lista de configurações de variáveis de ambiente para a Tarefa do Gerenciador de Trabalhos.
environmentSettings?: EnvironmentSetting[]
Valor da propriedade
id
Uma string que identifica de forma única a Tarefa do Gerenciador de Jobs dentro da Job. O ID pode conter qualquer combinação de caracteres alfanuméricos, incluindo hífens e sublinhados, e não pode conter mais de 64 caracteres.
id: string
Valor da propriedade
string
killJobOnCompletion
Se a conclusão da Tarefa do Gerenciador de Trabalho significa a conclusão de toda a Tarefa. Se for verdade, quando a tarefa do Gerenciador de Jobs for concluída, o serviço Batch marca o Job como completo. Se houver Tarefas ainda em execução neste momento (exceto a Liberação de Trabalho), essas Tarefas são encerradas. Se for falso, a conclusão da Tarefa do Gerenciador de Tarefas não afeta o status do Trabalho. Nesse caso, você deve usar o atributo onAllTasksComplete para encerrar o Job, ou fazer com que um cliente ou usuário termine o Job explicitamente. Um exemplo disso é se o Gerenciador de Tarefas cria um conjunto de Tarefas, mas depois não assume mais nenhum papel na execução delas. O valor padrão é true. Se você está usando os atributos onAllTasksComplete e onTaskFailure para controlar a vida útil do trabalho, e usando a tarefa do Gerenciador de Jobs apenas para criar as tarefas para o trabalho (não para monitorar o progresso), então é importante definir killJobOnCompletion como false.
killJobOnCompletion?: boolean
Valor da propriedade
boolean
outputFiles
Uma lista de arquivos que o serviço Batch enviará do Nó de Computação após executar a linha de comando. Para Tarefas de múltiplas instâncias, os arquivos só serão carregados do Nó de Computação onde a Tarefa principal é executada.
outputFiles?: OutputFile[]
Valor da propriedade
requiredSlots
O número de espaços de agendamento que a Tarefa precisa para executar. O valor padrão é 1. Uma Tarefa só pode ser agendada para rodar em um nó de computação se o nó tiver vagas de agendamento livres suficientes disponíveis. Para Tarefas multiinstância, essa propriedade não é suportada e não deve ser especificada.
requiredSlots?: number
Valor da propriedade
number
resourceFiles
Uma lista de arquivos que o serviço do Lote baixará no Nó de Computação antes de executar a linha de comando. Os arquivos listados sob esse elemento estão localizados no diretório de trabalho da Tarefa. Há um tamanho máximo para a lista de arquivos de recurso. Quando o tamanho máximo for excedido, a solicitação falhará e o código de erro de resposta será RequestEntityTooLarge. Se isso ocorrer, a coleção de ResourceFiles deverá ser reduzida em tamanho. Isso pode ser feito usando arquivos .zip, pacotes de aplicativos ou contêineres do Docker.
resourceFiles?: ResourceFile[]
Valor da propriedade
runExclusive
Se a Tarefa do Gerenciador de Jobs requer uso exclusivo do Nó de Computação onde ela é executada. Se for verdade, nenhuma outra Tarefa será executada no mesmo nó enquanto o Gerenciador de Jobs estiver rodando. Se for falso, outras Tarefas podem ser executadas simultaneamente com o Gerenciador de Jobs em um Nó de Computação. A Tarefa do Gerenciador de Trabalhos normalmente conta contra o limite concorrente de Tarefas do Nó de Computação, então isso só é relevante se o Nó de Processamento permitir múltiplas Tarefas simultâneas. O valor padrão é true.
runExclusive?: boolean
Valor da propriedade
boolean
userIdentity
A identidade do usuário sob a qual a Tarefa do Gerenciador de Jobs é executada. Se omitida, a Tarefa roda como um usuário não administrativo exclusivo da Tarefa.
userIdentity?: UserIdentity