BatchJobPreparationTask interface

Uma Tarefa de Preparação de Trabalho a ser executada antes de qualquer Tarefa do Trabalho em qualquer nó de computação especificado. Você pode usar a Preparação do Trabalho para preparar um nó para executar Tarefas para o Trabalho. As atividades normalmente executadas na Preparação do Trabalho incluem: Baixar arquivos de recursos comuns usados por todas as Tarefas no Trabalho. A Tarefa de Preparação de Trabalho pode baixar esses arquivos de recurso comuns para o local compartilhado no Nó. (AZ_BATCH_NODE_ROOT_DIR\shared) ou iniciando um serviço local no Nó para que todas as tarefas desse trabalho possam se comunicar com ele. Se a Tarefa preparação do trabalho falhar (ou seja, esgota sua contagem de repetições antes de sair com o código de saída 0), o Lote não executará Tarefas deste Trabalho no Nó. O Nó de Computação permanece inelegível para executar tarefas deste trabalho até que ele seja reimageado. O Nó de Computação permanece ativo e pode ser usado para outros trabalhos. A Tarefa preparação do trabalho pode ser executada várias vezes no mesmo nó. Portanto, você deve escrever a Tarefa de Preparação de Trabalho para lidar com a re-execução. Se o Nó for reinicializado, a Tarefa de Preparação de Trabalho será executada novamente no Nó de Computação antes de agendar qualquer outra Tarefa do Trabalho, se a execução novaMenteNodeRebootAfterSuccess for verdadeira ou se a Tarefa de Preparação do Trabalho não tiver sido concluída anteriormente. Se o Nó for reimageado, a Tarefa de Preparação do Trabalho será executada novamente antes de agendar qualquer Tarefa do Trabalho. 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

commandLine

A linha de comando da Tarefa de Preparação de Trabalhos. 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 de Preparação para o Trabalho.

containerSettings

As configurações do contêiner sob o qual a Tarefa de Preparação de Tarefas é executada. 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.

environmentSettings

Uma lista de configurações de variáveis de ambiente para a Tarefa de Preparação de Trabalho.

id

Uma string que identifica de forma única a Tarefa de Preparação de Trabalho dentro da Tarefa. 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. Se você não especificar essa característica, o serviço em lote atribui um valor padrão de 'preparação para o trabalho'. Nenhuma outra tarefa no Trabalho pode ter o mesmo ID que a Tarefa de Preparação de Trabalho. Se você tentar enviar uma tarefa com o mesmo id, o serviço Batch rejeita a solicitação com o código de erro TaskIdSameAsTareFaPreparaçãode de Trabalho; se você está chamando diretamente a API REST, o código de status HTTP é 409 (Conflito).

rerunOnNodeRebootAfterSuccess

Se o serviço Batch deve reexecutar a Tarefa de Preparação de Trabalho após a reinicialização de um Nó de Computação. A Tarefa de Preparação de Trabalho é sempre reexecutada se um Nó de Computação for reimaginado, ou se a Tarefa de Preparação de Trabalho não foi concluída (por exemplo, porque a reinicialização ocorreu enquanto a Tarefa estava em execução). Portanto, você deve sempre escrever uma Tarefa de Preparação de Trabalho para ser idempotente e se comportar corretamente se executada várias vezes. O valor padrão é true.

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.

userIdentity

A identidade do usuário sob a qual a Tarefa de Preparação de Tarefas é executada. Se omitida, a Tarefa roda como um usuário não administrativo exclusivo da Tarefa nos Nós de Computação do Windows, ou como um usuário não administrativo exclusivo do Pool nos Nós de Computação do Linux.

waitForSuccess

Se o serviço Batch deve esperar a Tarefa de Preparação de Trabalho ser concluída com sucesso antes de agendar quaisquer outras Tarefas do Trabalho no Nó de Computação. Uma Tarefa de Preparação de Trabalho foi concluída com sucesso se sair com código de saída 0. Se for verdade e a Tarefa de Preparação de Tarefas falhar em um nó, o serviço Batch tenta novamente a Tarefa de Preparação de Tarefas até seu número máximo de tentativas (conforme especificado no elemento de restrições). Se a Tarefa ainda não tiver sido concluída com sucesso após todas as tentativas, então o serviço Batch não irá agendar as Tarefas do Trabalho para o Nodo. O Nó permanece ativo e elegível para executar Tarefas de outros Jobs. Se for falso, o serviço em lote não esperará a conclusão da Tarefa de Preparação de Trabalho. Nesse caso, outras Tarefas do Trabalho podem começar a ser executadas no Nó de Computação enquanto a Tarefa de Preparação de Tarefas ainda está em execução; e mesmo que a Tarefa de Preparação de Trabalho falhe, novas Tarefas continuarão a ser agendadas no Nó de Computação. O valor padrão é true.

Detalhes da propriedade

commandLine

A linha de comando da Tarefa de Preparação de Trabalhos. 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 de Preparação para o Trabalho.

constraints?: BatchTaskConstraints

Valor da propriedade

containerSettings

As configurações do contêiner sob o qual a Tarefa de Preparação de Tarefas é executada. 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

environmentSettings

Uma lista de configurações de variáveis de ambiente para a Tarefa de Preparação de Trabalho.

environmentSettings?: EnvironmentSetting[]

Valor da propriedade

id

Uma string que identifica de forma única a Tarefa de Preparação de Trabalho dentro da Tarefa. 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. Se você não especificar essa característica, o serviço em lote atribui um valor padrão de 'preparação para o trabalho'. Nenhuma outra tarefa no Trabalho pode ter o mesmo ID que a Tarefa de Preparação de Trabalho. Se você tentar enviar uma tarefa com o mesmo id, o serviço Batch rejeita a solicitação com o código de erro TaskIdSameAsTareFaPreparaçãode de Trabalho; se você está chamando diretamente a API REST, o código de status HTTP é 409 (Conflito).

id?: string

Valor da propriedade

string

rerunOnNodeRebootAfterSuccess

Se o serviço Batch deve reexecutar a Tarefa de Preparação de Trabalho após a reinicialização de um Nó de Computação. A Tarefa de Preparação de Trabalho é sempre reexecutada se um Nó de Computação for reimaginado, ou se a Tarefa de Preparação de Trabalho não foi concluída (por exemplo, porque a reinicialização ocorreu enquanto a Tarefa estava em execução). Portanto, você deve sempre escrever uma Tarefa de Preparação de Trabalho para ser idempotente e se comportar corretamente se executada várias vezes. O valor padrão é true.

rerunOnNodeRebootAfterSuccess?: boolean

Valor da propriedade

boolean

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

userIdentity

A identidade do usuário sob a qual a Tarefa de Preparação de Tarefas é executada. Se omitida, a Tarefa roda como um usuário não administrativo exclusivo da Tarefa nos Nós de Computação do Windows, ou como um usuário não administrativo exclusivo do Pool nos Nós de Computação do Linux.

userIdentity?: UserIdentity

Valor da propriedade

waitForSuccess

Se o serviço Batch deve esperar a Tarefa de Preparação de Trabalho ser concluída com sucesso antes de agendar quaisquer outras Tarefas do Trabalho no Nó de Computação. Uma Tarefa de Preparação de Trabalho foi concluída com sucesso se sair com código de saída 0. Se for verdade e a Tarefa de Preparação de Tarefas falhar em um nó, o serviço Batch tenta novamente a Tarefa de Preparação de Tarefas até seu número máximo de tentativas (conforme especificado no elemento de restrições). Se a Tarefa ainda não tiver sido concluída com sucesso após todas as tentativas, então o serviço Batch não irá agendar as Tarefas do Trabalho para o Nodo. O Nó permanece ativo e elegível para executar Tarefas de outros Jobs. Se for falso, o serviço em lote não esperará a conclusão da Tarefa de Preparação de Trabalho. Nesse caso, outras Tarefas do Trabalho podem começar a ser executadas no Nó de Computação enquanto a Tarefa de Preparação de Tarefas ainda está em execução; e mesmo que a Tarefa de Preparação de Trabalho falhe, novas Tarefas continuarão a ser agendadas no Nó de Computação. O valor padrão é true.

waitForSuccess?: boolean

Valor da propriedade

boolean