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 Gestor de Jobs pode correr num nó de computação de Spot/Baixa Prioridade. O valor predefinido é true. |
| application |
Uma lista de Pacotes de Aplicação que o serviço Batch irá implementar no Nó de Computação antes de executar a linha de comandos. Os Pacotes de Aplicação são descarregados e implementados num diretório partilhado, não no diretório de trabalho Tarefa. Portanto, se um Pacote de Aplicação referenciado já estiver no Nó de Computação e estiver atualizado, então não é descarregado 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 eliminado ou porque o download falhou, a Tarefa falha. |
| command |
A linha de comandos da Tarefa do Gestor de Trabalhos. 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 quiser tirar partido destas funcionalidades, deve invocar o shell na linha de comandos, 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 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 Gestor de Funções. |
| container |
As definições do contentor sob o qual a Tarefa do Gestor de Jobs é executada. Se o Pool que irá executar esta tarefa tiver containerConfiguration definido, isto também deve ser definido. Se o Pool que irá executar esta Tarefa não tiver containerConfiguration ativado, isto não deve estar definido. Quando isto é especificado, todos os diretórios recursivamente abaixo do AZ_BATCH_NODE_ROOT_DIR (a raiz dos Azure Batch diretórios no nó) são mapeados para o contentor, todas as variáveis do ambiente Tarefa são mapeadas para o contentor e a linha de comandos Tarefa é executada no contentor. Ficheiros produzidos no contentor fora de AZ_BATCH_NODE_ROOT_DIR podem não ser refletidos para o disco anfitrião, o que significa que as APIs de ficheiros Batch não poderão aceder a esses ficheiros. |
| display |
O nome de exibição da Tarefa do Gestor de Trabalhos. Não precisa de ser único e pode conter quaisquer caracteres Unicode até um comprimento máximo de 1024. |
| environment |
Uma lista de definições de variáveis de ambiente para a Tarefa do Gestor de Trabalhos. |
| id | Uma cadeia que identifica de forma única a Tarefa do Gestor 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 de Gestor de Trabalho significa a conclusão de toda a Tarefa. Se for verdade, quando a Tarefa do Gestor de Trabalhos termina, o serviço Batch marca o Trabalho como concluído. Se houver Tarefas ainda a correr neste momento (exceto a Libertação de Emprego), essas Tarefas são terminadas. Se for falso, a conclusão da Tarefa do Gestor de Tarefas não afeta o estado do Trabalho. Neste caso, deve usar o atributo onAllTasksComplete para terminar o Trabalho, ou fazer com que um cliente ou utilizador termine explicitamente o Trabalho. Um exemplo disto é se o Gestor de Tarefas cria um conjunto de Tarefas, mas depois não assume mais papel na sua execução. O valor predefinido é true. Se estiver a usar os atributos onAllTasksComplete e onTaskFailure para controlar a vida útil do Job, e a usar a Task do Job Manager apenas para criar as Tasks do Job (não para monitorizar o progresso), então é importante definir killJobOnCompletion como false. |
| output |
Uma lista de ficheiros que o serviço Batch irá carregar do Nó de Computação após executar a linha de comandos. Para Tarefas de múltiplas instâncias, os ficheiros só serão carregados a partir do Nó de Computação onde a Tarefa principal é executada. |
| required |
O número de espaços de agendamento que a Tarefa requer para executar. O valor predefinido é 1. Uma Tarefa só pode ser agendada para correr num nó de computação se este tiver espaços de agendamento livres suficientes. Para Tarefas de múltiplas instâncias, esta 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 Gestor de Tarefas requer uso exclusivo do Nó de Computação onde é executada. Se for verdade, nenhuma outra Tarefa irá correr no mesmo nó enquanto o Gestor de Tarefas estiver a funcionar. Se for falso, outras Tarefas podem correr simultaneamente com o Gestor de Trabalhos num Nó de Computação. A Tarefa do Gestor de Trabalhos conta normalmente contra o limite concorrente de Tarefas do Nó de Computação, pelo que isto só é relevante se o Nó de Cálculo permitir múltiplas Tarefas concorrentes. O valor predefinido é true. |
| user |
A identidade do utilizador sob a qual a Tarefa do Gestor de Jobs é executada. Se omitida, a Tarefa é executada como um utilizador não administrativo único da Tarefa. |
Detalhes de Propriedade
allowLowPriorityNode
Se a Tarefa do Gestor de Jobs pode correr num nó de computação de Spot/Baixa Prioridade. O valor predefinido é true.
allowLowPriorityNode?: boolean
Valor de Propriedade
boolean
applicationPackageReferences
Uma lista de Pacotes de Aplicação que o serviço Batch irá implementar no Nó de Computação antes de executar a linha de comandos. Os Pacotes de Aplicação são descarregados e implementados num diretório partilhado, não no diretório de trabalho Tarefa. Portanto, se um Pacote de Aplicação referenciado já estiver no Nó de Computação e estiver atualizado, então não é descarregado 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 eliminado ou porque o download falhou, a Tarefa falha.
applicationPackageReferences?: BatchApplicationPackageReference[]
Valor de Propriedade
commandLine
A linha de comandos da Tarefa do Gestor de Trabalhos. 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 quiser tirar partido destas funcionalidades, deve invocar o shell na linha de comandos, 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 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 Gestor de Funções.
constraints?: BatchTaskConstraints
Valor de Propriedade
containerSettings
As definições do contentor sob o qual a Tarefa do Gestor de Jobs é executada. Se o Pool que irá executar esta tarefa tiver containerConfiguration definido, isto também deve ser definido. Se o Pool que irá executar esta Tarefa não tiver containerConfiguration ativado, isto não deve estar definido. Quando isto é especificado, todos os diretórios recursivamente abaixo do AZ_BATCH_NODE_ROOT_DIR (a raiz dos Azure Batch diretórios no nó) são mapeados para o contentor, todas as variáveis do ambiente Tarefa são mapeadas para o contentor e a linha de comandos Tarefa é executada no contentor. Ficheiros produzidos no contentor fora de AZ_BATCH_NODE_ROOT_DIR podem não ser refletidos para o disco anfitrião, o que significa que as APIs de ficheiros Batch não poderão aceder a esses ficheiros.
containerSettings?: BatchTaskContainerSettings
Valor de Propriedade
displayName
O nome de exibição da Tarefa do Gestor de Trabalhos. Não precisa de ser único e pode conter quaisquer caracteres Unicode até um comprimento máximo de 1024.
displayName?: string
Valor de Propriedade
string
environmentSettings
Uma lista de definições de variáveis de ambiente para a Tarefa do Gestor de Trabalhos.
environmentSettings?: EnvironmentSetting[]
Valor de Propriedade
id
Uma cadeia que identifica de forma única a Tarefa do Gestor 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 de Gestor de Trabalho significa a conclusão de toda a Tarefa. Se for verdade, quando a Tarefa do Gestor de Trabalhos termina, o serviço Batch marca o Trabalho como concluído. Se houver Tarefas ainda a correr neste momento (exceto a Libertação de Emprego), essas Tarefas são terminadas. Se for falso, a conclusão da Tarefa do Gestor de Tarefas não afeta o estado do Trabalho. Neste caso, deve usar o atributo onAllTasksComplete para terminar o Trabalho, ou fazer com que um cliente ou utilizador termine explicitamente o Trabalho. Um exemplo disto é se o Gestor de Tarefas cria um conjunto de Tarefas, mas depois não assume mais papel na sua execução. O valor predefinido é true. Se estiver a usar os atributos onAllTasksComplete e onTaskFailure para controlar a vida útil do Job, e a usar a Task do Job Manager apenas para criar as Tasks do Job (não para monitorizar o progresso), então é importante definir killJobOnCompletion como false.
killJobOnCompletion?: boolean
Valor de Propriedade
boolean
outputFiles
Uma lista de ficheiros que o serviço Batch irá carregar do Nó de Computação após executar a linha de comandos. Para Tarefas de múltiplas instâncias, os ficheiros só serão carregados a partir do Nó de Computação onde a Tarefa principal é executada.
outputFiles?: OutputFile[]
Valor de Propriedade
requiredSlots
O número de espaços de agendamento que a Tarefa requer para executar. O valor predefinido é 1. Uma Tarefa só pode ser agendada para correr num nó de computação se este tiver espaços de agendamento livres suficientes. Para Tarefas de múltiplas instâncias, esta 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 Gestor de Tarefas requer uso exclusivo do Nó de Computação onde é executada. Se for verdade, nenhuma outra Tarefa irá correr no mesmo nó enquanto o Gestor de Tarefas estiver a funcionar. Se for falso, outras Tarefas podem correr simultaneamente com o Gestor de Trabalhos num Nó de Computação. A Tarefa do Gestor de Trabalhos conta normalmente contra o limite concorrente de Tarefas do Nó de Computação, pelo que isto só é relevante se o Nó de Cálculo permitir múltiplas Tarefas concorrentes. O valor predefinido é true.
runExclusive?: boolean
Valor de Propriedade
boolean
userIdentity
A identidade do utilizador sob a qual a Tarefa do Gestor de Jobs é executada. Se omitida, a Tarefa é executada como um utilizador não administrativo único da Tarefa.
userIdentity?: UserIdentity