BatchJobManagerTask interface
Especifica os detalhes de uma Tarefa do Gerenciador de Tarefas. A Tarefa do Gestor de Tarefas é iniciada automaticamente quando a Tarefa é criada. O serviço em lote tenta agendar a tarefa do gerenciador de tarefas antes de qualquer outra tarefa no trabalho. Ao reduzir um Pool, o serviço de Lote tenta preservar os Nós onde as Tarefas do Gerenciador de Tarefas estão sendo executadas pelo maior tempo possível (ou seja, os Nós de Computação que executam Tarefas 'normais' são removidos antes que os Nós de Computação executem as Tarefas do Gerenciador de Tarefas). Quando uma tarefa do Job Manager falha e precisa ser reiniciada, o sistema tenta programá-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 a reinicialização da Tarefa do Gerenciador de Tarefas. Observe que uma Tarefa do Gerenciador de Tarefas em um Trabalho não tem prioridade sobre as Tarefas em outros Trabalhos. Em todos os empregos, apenas as prioridades de nível de trabalho são observadas. Por exemplo, se um Gerente de Tarefas em um Trabalho de prioridade 0 precisar ser reiniciado, ele não substituirá Tarefas de um Trabalho de prioridade 1. O lote tentará novamente Tarefas quando uma operação de recuperação for acionada em um nó. Exemplos de operações de recuperação incluem (mas não estão limitados a) quando um nó não íntegro é reinicializado ou um nó de computação desaparece devido a falha do host. As novas tentativas devido a operações de recuperação são independentes e não são contabilizadas em relação ao maxTaskRetryCount. Mesmo se maxTaskRetryCount for 0, pode ocorrer uma nova tentativa interna devido a uma operação de recuperação. Por isso, todas as tarefas devem ser idempotentes. Isso significa que as tarefas precisam tolerar ser interrompidas e reiniciadas sem causar corrupção ou dados duplicados. A prática recomendada para tarefas de longa duração é usar alguma forma de ponto de verificação.
Propriedades
| allow |
Se a tarefa do gerenciador de tarefas pode ser executada em um nó de computação local/de baixa prioridade. O valor padrão é true. |
| application |
Uma lista de pacotes de aplicativos que o serviço em lote implantará no nó de computação antes de executar a linha de comando. Os Pacotes de Aplicativos são baixados e implantados em um diretório compartilhado, não no diretório de trabalho da Tarefa. Portanto, se um pacote de aplicativo referenciado já estiver no nó de computação e estiver atualizado, ele não será baixado novamente; a cópia existente no nó de computação é usada. Se um pacote de aplicativo referenciado não puder ser instalado, por exemplo, porque o pacote foi excluído ou porque o download falhou, a tarefa falhará. |
| authentication |
As configurações de um token de autenticação que a Tarefa pode usar para executar operações de serviço em lote. Se essa propriedade estiver definida, o serviço Batch fornecerá à Task um token de autenticação que pode ser usado para autenticar operações de serviço em Batch sem exigir uma chave de acesso de Conta. O token é fornecido através da variável de ambiente AZ_BATCH_AUTHENTICATION_TOKEN. As operações que a Tarefa pode realizar usando o token dependem das configurações. Por exemplo, uma Tarefa pode solicitar permissões de Trabalho para adicionar outras Tarefas ao Trabalho ou verificar o status do Trabalho ou de outras Tarefas sob o Trabalho. |
| command |
A linha de comando da Tarefa do Gerenciador de Tarefas. A linha de comando não é executada sob um shell e, portanto, não pode aproveitar os recursos do shell, como a expansão da variável de ambiente. Se você quiser aproveitar esses recursos, você deve invocar o shell na linha de comando, por exemplo, usando "cmd /c MyCommand" no 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 Tarefa) ou usar a variável de ambiente Batch provided (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables). |
| constraints | Restrições que se aplicam à Tarefa do Gerenciador de Tarefas. |
| container |
As configurações do contêiner sob o qual a Tarefa do Gerenciador de Tarefas é executada. Se o Pool que executará esta Tarefa tiver containerConfiguration definido, isso também deverá ser definido. Se o Pool que executará esta Tarefa não tiver containerConfiguration definido, isso não deverá ser definido. Quando isso é especificado, todos os diretórios recursivamente abaixo do AZ_BATCH_NODE_ROOT_DIR (a raiz dos diretórios do Lote do Azure no nó) são mapeados no contêiner, todas as variáveis de ambiente de Tarefa são mapeadas no contêiner e a linha de comando Tarefa é executada no contêiner. Os arquivos produzidos no contêiner fora de AZ_BATCH_NODE_ROOT_DIR podem não ser refletidos no disco host, o que significa que as APIs de arquivo em lote não poderão acessar esses arquivos. |
| display |
O nome para exibição da Tarefa do Gerenciador de Tarefas. Ele não precisa ser exclusivo e pode conter 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 tarefas. |
| id | Uma cadeia de caracteres que identifica exclusivamente a Tarefa do Gerenciador de Tarefas dentro do Trabalho. O ID pode conter qualquer combinação de caracteres alfanuméricos, incluindo hífenes e sublinhados, e não pode conter mais de 64 caracteres. |
| kill |
Se a conclusão da Tarefa do Gerenciador de Tarefas significa a conclusão de todo o Trabalho. Se verdadeiro, quando a tarefa do gerenciador de tarefas for concluída, o serviço em lote marcará o trabalho como concluído. Se alguma Tarefa ainda estiver em execução neste momento (exceto Liberação de Trabalho), essas Tarefas serão encerradas. Se false, a conclusão da Tarefa do Gerenciador de Tarefas não afetará o status do Trabalho. Nesse caso, você deve usar o atributo onAllTasksComplete para encerrar o trabalho ou fazer com que um cliente ou usuário encerre o trabalho explicitamente. Um exemplo disso é se o Job Manager cria um conjunto de Tarefas, mas depois não assume mais nenhuma função em sua execução. O valor padrão é true. Se você estiver usando os atributos onAllTasksComplete e onTaskFailure para controlar o tempo de vida do trabalho e usando a tarefa do gerenciador de tarefas apenas para criar as tarefas para o trabalho (não para monitorar o progresso), é importante definir killJobOnCompletion como false. |
| output |
Uma lista de arquivos que o serviço Batch carregará do nó de computação depois de executar a linha de comando. Para Tarefas de várias instâncias, os arquivos só serão carregados a partir do Nó de Computação no qual a Tarefa principal é executada. |
| required |
O número de slots de agendamento que a Tarefa requer para ser executada. O padrão é 1. Uma Tarefa só pode ser agendada para ser executada em um nó de computação se o nó tiver slots de agendamento livres suficientes disponíveis. Para tarefas de várias instâncias, essa propriedade não é suportada e não deve ser especificada. |
| resource |
Uma lista de arquivos que o serviço em lote baixará para o nó de computação antes de executar a linha de comando. Os arquivos listados sob este elemento estão localizados no diretório de trabalho da tarefa. Há um tamanho máximo para a lista de arquivos de recursos. 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 deve ser reduzida em tamanho. Isso pode ser feito usando arquivos .zip, pacotes de aplicativos ou contêineres do Docker. |
| run |
Se a tarefa do Job Manager requer o uso exclusivo do nó de computação onde é executada. Se verdadeiro, nenhuma outra Tarefa será executada no mesmo Nó enquanto o Gerenciador de Tarefas estiver em execução. Se false, outras tarefas podem ser executadas simultaneamente com o Job Manager em um nó de computação. A Tarefa do Gerenciador de Tarefas conta normalmente em relação ao limite de Tarefas simultâneas do Nó de Computação, portanto, isso só é relevante se o Nó de Computação permitir várias Tarefas simultâneas. O valor padrão é true. |
| user |
A identidade do usuário sob a qual a Tarefa do Gerenciador de Tarefas é executada. Se omitida, a Tarefa é executada como um usuário não administrativo exclusivo para a Tarefa. |
Detalhes de Propriedade
allowLowPriorityNode
Se a tarefa do gerenciador de tarefas pode ser executada em um nó de computação local/de baixa prioridade. O valor padrão é true.
allowLowPriorityNode?: boolean
Valor de Propriedade
boolean
applicationPackageReferences
Uma lista de pacotes de aplicativos que o serviço em lote implantará no nó de computação antes de executar a linha de comando. Os Pacotes de Aplicativos são baixados e implantados em um diretório compartilhado, não no diretório de trabalho da Tarefa. Portanto, se um pacote de aplicativo referenciado já estiver no nó de computação e estiver atualizado, ele não será baixado novamente; a cópia existente no nó de computação é usada. Se um pacote de aplicativo referenciado não puder ser instalado, por exemplo, porque o pacote foi excluído ou porque o download falhou, a tarefa falhará.
applicationPackageReferences?: BatchApplicationPackageReference[]
Valor de Propriedade
authenticationTokenSettings
As configurações de um token de autenticação que a Tarefa pode usar para executar operações de serviço em lote. Se essa propriedade estiver definida, o serviço Batch fornecerá à Task um token de autenticação que pode ser usado para autenticar operações de serviço em Batch sem exigir uma chave de acesso de Conta. O token é fornecido através da variável de ambiente AZ_BATCH_AUTHENTICATION_TOKEN. As operações que a Tarefa pode realizar usando o token dependem das configurações. Por exemplo, uma Tarefa pode solicitar permissões de Trabalho para adicionar outras Tarefas ao Trabalho ou verificar o status do Trabalho ou de outras Tarefas sob o Trabalho.
authenticationTokenSettings?: AuthenticationTokenSettings
Valor de Propriedade
commandLine
A linha de comando da Tarefa do Gerenciador de Tarefas. A linha de comando não é executada sob um shell e, portanto, não pode aproveitar os recursos do shell, como a expansão da variável de ambiente. Se você quiser aproveitar esses recursos, você deve invocar o shell na linha de comando, por exemplo, usando "cmd /c MyCommand" no 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 Tarefa) ou usar a variável de ambiente Batch provided (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables).
commandLine: string
Valor de Propriedade
string
constraints
Restrições que se aplicam à Tarefa do Gerenciador de Tarefas.
constraints?: BatchTaskConstraints
Valor de Propriedade
containerSettings
As configurações do contêiner sob o qual a Tarefa do Gerenciador de Tarefas é executada. Se o Pool que executará esta Tarefa tiver containerConfiguration definido, isso também deverá ser definido. Se o Pool que executará esta Tarefa não tiver containerConfiguration definido, isso não deverá ser definido. Quando isso é especificado, todos os diretórios recursivamente abaixo do AZ_BATCH_NODE_ROOT_DIR (a raiz dos diretórios do Lote do Azure no nó) são mapeados no contêiner, todas as variáveis de ambiente de Tarefa são mapeadas no contêiner e a linha de comando Tarefa é executada no contêiner. Os arquivos produzidos no contêiner fora de AZ_BATCH_NODE_ROOT_DIR podem não ser refletidos no disco host, o que significa que as APIs de arquivo em lote não poderão acessar esses arquivos.
containerSettings?: BatchTaskContainerSettings
Valor de Propriedade
displayName
O nome para exibição da Tarefa do Gerenciador de Tarefas. Ele não precisa ser exclusivo e pode conter caracteres Unicode até um comprimento máximo de 1024.
displayName?: string
Valor de Propriedade
string
environmentSettings
Uma lista de configurações de variáveis de ambiente para a tarefa do Gerenciador de tarefas.
environmentSettings?: EnvironmentSetting[]
Valor de Propriedade
id
Uma cadeia de caracteres que identifica exclusivamente a Tarefa do Gerenciador de Tarefas dentro do Trabalho. O ID pode conter qualquer combinação de caracteres alfanuméricos, incluindo hífenes e sublinhados, e não pode conter mais de 64 caracteres.
id: string
Valor de Propriedade
string
killJobOnCompletion
Se a conclusão da Tarefa do Gerenciador de Tarefas significa a conclusão de todo o Trabalho. Se verdadeiro, quando a tarefa do gerenciador de tarefas for concluída, o serviço em lote marcará o trabalho como concluído. Se alguma Tarefa ainda estiver em execução neste momento (exceto Liberação de Trabalho), essas Tarefas serão encerradas. Se false, a conclusão da Tarefa do Gerenciador de Tarefas não afetará o status do Trabalho. Nesse caso, você deve usar o atributo onAllTasksComplete para encerrar o trabalho ou fazer com que um cliente ou usuário encerre o trabalho explicitamente. Um exemplo disso é se o Job Manager cria um conjunto de Tarefas, mas depois não assume mais nenhuma função em sua execução. O valor padrão é true. Se você estiver usando os atributos onAllTasksComplete e onTaskFailure para controlar o tempo de vida do trabalho e usando a tarefa do gerenciador de tarefas apenas para criar as tarefas para o trabalho (não para monitorar o progresso), é importante definir killJobOnCompletion como false.
killJobOnCompletion?: boolean
Valor de Propriedade
boolean
outputFiles
Uma lista de arquivos que o serviço Batch carregará do nó de computação depois de executar a linha de comando. Para Tarefas de várias instâncias, os arquivos só serão carregados a partir do Nó de Computação no qual a Tarefa principal é executada.
outputFiles?: OutputFile[]
Valor de Propriedade
requiredSlots
O número de slots de agendamento que a Tarefa requer para ser executada. O padrão é 1. Uma Tarefa só pode ser agendada para ser executada em um nó de computação se o nó tiver slots de agendamento livres suficientes disponíveis. Para tarefas de várias instâncias, essa propriedade não é suportada e não deve ser especificada.
requiredSlots?: number
Valor de Propriedade
number
resourceFiles
Uma lista de arquivos que o serviço em lote baixará para o nó de computação antes de executar a linha de comando. Os arquivos listados sob este elemento estão localizados no diretório de trabalho da tarefa. Há um tamanho máximo para a lista de arquivos de recursos. 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 deve ser reduzida em tamanho. Isso pode ser feito usando arquivos .zip, pacotes de aplicativos ou contêineres do Docker.
resourceFiles?: ResourceFile[]
Valor de Propriedade
runExclusive
Se a tarefa do Job Manager requer o uso exclusivo do nó de computação onde é executada. Se verdadeiro, nenhuma outra Tarefa será executada no mesmo Nó enquanto o Gerenciador de Tarefas estiver em execução. Se false, outras tarefas podem ser executadas simultaneamente com o Job Manager em um nó de computação. A Tarefa do Gerenciador de Tarefas conta normalmente em relação ao limite de Tarefas simultâneas do Nó de Computação, portanto, isso só é relevante se o Nó de Computação permitir várias Tarefas simultâneas. O valor padrão é true.
runExclusive?: boolean
Valor de Propriedade
boolean
userIdentity
A identidade do usuário sob a qual a Tarefa do Gerenciador de Tarefas é executada. Se omitida, a Tarefa é executada como um usuário não administrativo exclusivo para a Tarefa.
userIdentity?: UserIdentity