BatchJobPreparationTask interface
Uma Tarefa de Preparação de Trabalho a ser executada antes de qualquer Tarefa do Trabalho em qualquer Nó de Computação. Você pode usar a Preparação do Trabalho para preparar um Nó para executar Tarefas para o Trabalho. As atividades normalmente realizadas na Preparação para o Trabalho incluem: Download de arquivos de recursos comuns usados por todas as Tarefas no Trabalho. A Tarefa de Preparação de Trabalho pode baixar esses arquivos de recursos comuns para o local compartilhado no nó. (AZ_BATCH_NODE_ROOT_DIR\shared) ou iniciar um serviço local no Nó para que todas as Tarefas desse Trabalho possam se comunicar com ele. Se a Tarefa de Preparação de Trabalho falhar (ou seja, esgotar sua contagem de tentativas 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 seja recriado. O nó de computação permanece ativo e pode ser usado para outros trabalhos. A Tarefa de Preparação de 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 reexecuçã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 rerunOnNodeRebootAfterSuccess for true ou se a Tarefa de Preparação de Trabalho não tiver sido concluída anteriormente. Se o Nó for recriado, 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 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
| command |
A linha de comando da Tarefa de Preparação de Trabalho. 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 de Preparação de Trabalho. |
| container |
As configurações do contêiner sob o qual a Tarefa de Preparação de Trabalho é executada. 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. |
| environment |
Uma lista de configurações de variáveis de ambiente para a Tarefa de Preparação de Trabalho. |
| id | Uma cadeia de caracteres que identifica exclusivamente a Tarefa de Preparação de Trabalho 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. Se você não especificar essa propriedade, o serviço Batch atribuirá um valor padrão de 'jobpreparation'. Nenhuma outra Tarefa no Trabalho pode ter a mesma ID que a Tarefa de Preparação do Trabalho. Se você tentar enviar uma tarefa com a mesma id, o serviço de lote rejeitará a solicitação com o código de erro TaskIdSameAsJobPreparationTask; se você estiver chamando a API REST diretamente, o código de status HTTP será 409 (Conflito). |
| rerun |
Se o serviço em lote deve executar novamente 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 executada novamente se um Nó de Computação for recriado ou se a Tarefa de Preparação de Trabalho não tiver sido 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 executado várias vezes. O valor padrão é true. |
| 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. |
| user |
A identidade do usuário sob a qual a Tarefa de Preparação de Trabalho é executada. Se omitida, a Tarefa é executada como um usuário não administrativo exclusivo para a Tarefa nos Nós de Computação do Windows ou como um usuário não administrativo exclusivo para o Pool nos Nós de Computação do Linux. |
| wait |
Se o serviço em lote deve aguardar a conclusão bem-sucedida da tarefa de preparação do trabalho antes de agendar quaisquer outras tarefas do trabalho no nó de computação. Uma Tarefa de Preparação de Trabalho foi concluída com êxito se sair com o código de saída 0. Se true e a Tarefa de Preparação de Trabalho falhar em um Nó, o serviço em lote tentará novamente a Tarefa de Preparação de Trabalho até sua contagem máxima de tentativas (conforme especificado no elemento de restrições). Se a Tarefa ainda não tiver sido concluída com êxito após todas as tentativas, o serviço em lote não agendará as Tarefas do Trabalho para o Nó. O Nó permanece ativo e qualificado para executar Tarefas de outros Trabalhos. Se false, o serviço de lote não aguardará a conclusão da tarefa de preparação do trabalho. Nesse caso, outras Tarefas do Trabalho podem começar a ser executadas no Nó de Computação enquanto a Tarefa de Preparação do Trabalho ainda está em execução; e mesmo se a Tarefa de Preparação de Trabalho falhar, novas Tarefas continuarão a ser agendadas no Nó de Computação. O valor padrão é true. |
Detalhes de Propriedade
commandLine
A linha de comando da Tarefa de Preparação de Trabalho. 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 de Preparação de Trabalho.
constraints?: BatchTaskConstraints
Valor de Propriedade
containerSettings
As configurações do contêiner sob o qual a Tarefa de Preparação de Trabalho é executada. 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
environmentSettings
Uma lista de configurações de variáveis de ambiente para a Tarefa de Preparação de Trabalho.
environmentSettings?: EnvironmentSetting[]
Valor de Propriedade
id
Uma cadeia de caracteres que identifica exclusivamente a Tarefa de Preparação de Trabalho 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. Se você não especificar essa propriedade, o serviço Batch atribuirá um valor padrão de 'jobpreparation'. Nenhuma outra Tarefa no Trabalho pode ter a mesma ID que a Tarefa de Preparação do Trabalho. Se você tentar enviar uma tarefa com a mesma id, o serviço de lote rejeitará a solicitação com o código de erro TaskIdSameAsJobPreparationTask; se você estiver chamando a API REST diretamente, o código de status HTTP será 409 (Conflito).
id?: string
Valor de Propriedade
string
rerunOnNodeRebootAfterSuccess
Se o serviço em lote deve executar novamente 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 executada novamente se um Nó de Computação for recriado ou se a Tarefa de Preparação de Trabalho não tiver sido 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 executado várias vezes. O valor padrão é true.
rerunOnNodeRebootAfterSuccess?: boolean
Valor de Propriedade
boolean
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
userIdentity
A identidade do usuário sob a qual a Tarefa de Preparação de Trabalho é executada. Se omitida, a Tarefa é executada como um usuário não administrativo exclusivo para a Tarefa nos Nós de Computação do Windows ou como um usuário não administrativo exclusivo para o Pool nos Nós de Computação do Linux.
userIdentity?: UserIdentity
Valor de Propriedade
waitForSuccess
Se o serviço em lote deve aguardar a conclusão bem-sucedida da tarefa de preparação do trabalho antes de agendar quaisquer outras tarefas do trabalho no nó de computação. Uma Tarefa de Preparação de Trabalho foi concluída com êxito se sair com o código de saída 0. Se true e a Tarefa de Preparação de Trabalho falhar em um Nó, o serviço em lote tentará novamente a Tarefa de Preparação de Trabalho até sua contagem máxima de tentativas (conforme especificado no elemento de restrições). Se a Tarefa ainda não tiver sido concluída com êxito após todas as tentativas, o serviço em lote não agendará as Tarefas do Trabalho para o Nó. O Nó permanece ativo e qualificado para executar Tarefas de outros Trabalhos. Se false, o serviço de lote não aguardará a conclusão da tarefa de preparação do trabalho. Nesse caso, outras Tarefas do Trabalho podem começar a ser executadas no Nó de Computação enquanto a Tarefa de Preparação do Trabalho ainda está em execução; e mesmo se a Tarefa de Preparação de Trabalho falhar, novas Tarefas continuarão a ser agendadas no Nó de Computação. O valor padrão é true.
waitForSuccess?: boolean
Valor de Propriedade
boolean