Partilhar via


BatchJobManagerTaskOutput 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

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.

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

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.

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

constraints

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

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.

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.

environmentSettings

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.

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.

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.

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.

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.

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.

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.

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?: BatchApplicationPackageReferenceOutput[]

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?: AuthenticationTokenSettingsOutput

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?: BatchTaskConstraintsOutput

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?: BatchTaskContainerSettingsOutput

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?: EnvironmentSettingOutput[]

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?: OutputFileOutput[]

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?: ResourceFileOutput[]

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?: UserIdentityOutput

Valor de Propriedade