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

allowLowPriorityNode

Se a Tarefa do Gerenciador de Jobs pode rodar em um Nó de Computação Spot/Baixa Prioridade. O valor padrão é true.

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.

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).

constraints

Restrições que se aplicam à Tarefa do Gerenciador de Funções.

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.

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.

environmentSettings

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.

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.

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.

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.

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.

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.

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.

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

Valor da propriedade