Compartilhar via


JobPreparationTask Classe

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_DIRshared) 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 do Trabalho falhar (ou seja, esgotar 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 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 do Trabalho para lidar com a re-execução. Se o Nó for reinicializado, a Tarefa de Preparação do 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 do 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 repetirá 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 no host. As novas tentativas devido a operações de recuperação são independentes de e não são contadas em relação a maxTaskRetryCount. Mesmo que maxTaskRetryCount seja 0, poderá ocorrer uma repetição interna devido a uma operação de recuperação. Por isso, todas as Tarefas devem ser idempotentes. Isso significa que as tarefas precisam tolerar que sejam interrompidas e reiniciadas sem causar dados corrompidos ou duplicados. A melhor prática para tarefas de execução prolongada é usar alguma forma de ponto de verificação.

Todos os parâmetros necessários devem ser preenchidos para enviar ao Azure.

Herança
JobPreparationTask

Construtor

JobPreparationTask(*, command_line: str, id: str = None, container_settings=None, resource_files=None, environment_settings=None, constraints=None, wait_for_success: bool = None, user_identity=None, rerun_on_node_reboot_after_success: bool = None, **kwargs)

Parâmetros

id
str
Obrigatório

A ID pode conter qualquer combinação de caracteres alfanuméricos, incluindo hifens e sublinhados, e não pode conter mais de 64 caracteres. Se você não especificar essa propriedade, o serviço lote 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 do Lote rejeitará a solicitação com o código de erro TaskIdSameAsJobPreparationTask; se você estiver chamando a API REST diretamente, o código http status será 409 (Conflito).

command_line
str
Obrigatório

Obrigatórios. A linha de comando não é executada em 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, invoque 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 (em relação ao diretório de trabalho tarefa) ou usar a variável de ambiente fornecida pelo Lote (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).

container_settings
TaskContainerSettings
Obrigatório

As configurações do contêiner no qual a Tarefa de Preparação do Trabalho é executada. Quando isso é especificado, todos os diretórios recursivamente abaixo do AZ_BATCH_NODE_ROOT_DIR (a raiz de Lote do Azure diretórios no nó) são mapeados para o contêiner, todas as variáveis de ambiente de tarefa são mapeadas para o contêiner e a linha de comando Tarefa é executada no contêiner. Os arquivos produzidos no contêiner fora do AZ_BATCH_NODE_ROOT_DIR podem não ser refletidos no disco do host, o que significa que as APIs de arquivo do Lote não poderão acessar esses arquivos.

resource_files
list[ResourceFile]
Obrigatório

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 obtido usando arquivos .zip, Pacotes de Aplicativos ou Contêineres do Docker.

environment_settings
list[EnvironmentSetting]
Obrigatório
constraints
TaskConstraints
Obrigatório

Restrições que se aplicam à Tarefa de Preparação do Trabalho.

wait_for_success
bool
Obrigatório

Se o serviço do Lote deve aguardar a conclusão da Tarefa de Preparação do Trabalho com êxito antes de agendar outras Tarefas do Trabalho no Nó de Computação. Uma Tarefa de Preparação de Trabalho foi concluída com êxito se ela sair com o código de saída 0. Se true e a Tarefa de Preparação do Trabalho falharem em um nó, o serviço do Lote tentará novamente a Tarefa de Preparação do Trabalho até sua contagem máxima de repetição (conforme especificado no elemento constraints). Se a Tarefa ainda não tiver sido concluída com êxito após todas as novas tentativas, o serviço do Lote não agendará Tarefas do Trabalho para o Nó. O Nó permanece ativo e qualificado para executar Tarefas de outros Trabalhos. Se for falso, o serviço do 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 estiver em execução; e mesmo que a Tarefa de Preparação do Trabalho falhe, novas Tarefas continuarão a ser agendadas no Nó de Computação. O valor padrão é true.

user_identity
UserIdentity
Obrigatório

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

rerun_on_node_reboot_after_success
bool
Obrigatório

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

Métodos

as_dict

Retornar um ditado que pode ser JSONify usando json.dump.

O uso avançado pode, opcionalmente, usar um retorno de chamada como parâmetro:

Key é o nome do atributo usado no Python. Attr_desc é um ditado de metadados. Atualmente, contém 'type' com o tipo msrest e 'key' com a chave codificada restAPI. Value é o valor atual neste objeto.

A cadeia de caracteres retornada será usada para serializar a chave. Se o tipo de retorno for uma lista, isso será considerado um dict de resultado hierárquico.

Confira os três exemplos neste arquivo:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

Se você quiser serialização XML, poderá passar os kwargs is_xml=True.

deserialize

Analise um str usando a sintaxe RestAPI e retorne um modelo.

enable_additional_properties_sending
from_dict

Analisar um ditado usando determinado extrator de chave retorna um modelo.

Por padrão, considere extratores de chave (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor e last_rest_key_case_insensitive_extractor)

is_xml_model
serialize

Retorne o JSON que seria enviado para o azure desse modelo.

Esse é um alias para as_dict(full_restapi_key_transformer, keep_readonly=False).

Se você quiser serialização XML, poderá passar os kwargs is_xml=True.

validate

Valide esse modelo recursivamente e retorne uma lista de ValidationError.

as_dict

Retornar um ditado que pode ser JSONify usando json.dump.

O uso avançado pode, opcionalmente, usar um retorno de chamada como parâmetro:

Key é o nome do atributo usado no Python. Attr_desc é um ditado de metadados. Atualmente, contém 'type' com o tipo msrest e 'key' com a chave codificada restAPI. Value é o valor atual neste objeto.

A cadeia de caracteres retornada será usada para serializar a chave. Se o tipo de retorno for uma lista, isso será considerado um dict de resultado hierárquico.

Confira os três exemplos neste arquivo:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

Se você quiser serialização XML, poderá passar os kwargs is_xml=True.

as_dict(keep_readonly=True, key_transformer=<function attribute_transformer>, **kwargs)

Parâmetros

key_transformer
<xref:function>

Uma função de transformador de chave.

keep_readonly
valor padrão: True

Retornos

Um objeto compatível com JSON de ditado

Tipo de retorno

deserialize

Analise um str usando a sintaxe RestAPI e retorne um modelo.

deserialize(data, content_type=None)

Parâmetros

data
str
Obrigatório

Um str usando a estrutura RestAPI. JSON por padrão.

content_type
str
valor padrão: None

JSON por padrão, defina application/xml se XML.

Retornos

Uma instância desse modelo

Exceções

DeserializationError if something went wrong

enable_additional_properties_sending

enable_additional_properties_sending()

from_dict

Analisar um ditado usando determinado extrator de chave retorna um modelo.

Por padrão, considere extratores de chave (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor e last_rest_key_case_insensitive_extractor)

from_dict(data, key_extractors=None, content_type=None)

Parâmetros

data
dict
Obrigatório

Um ditado usando a estrutura RestAPI

content_type
str
valor padrão: None

JSON por padrão, defina application/xml se XML.

key_extractors
valor padrão: None

Retornos

Uma instância desse modelo

Exceções

DeserializationError if something went wrong

is_xml_model

is_xml_model()

serialize

Retorne o JSON que seria enviado para o azure desse modelo.

Esse é um alias para as_dict(full_restapi_key_transformer, keep_readonly=False).

Se você quiser serialização XML, poderá passar os kwargs is_xml=True.

serialize(keep_readonly=False, **kwargs)

Parâmetros

keep_readonly
bool
valor padrão: False

Se você quiser serializar os atributos somente leitura

Retornos

Um objeto compatível com JSON de ditado

Tipo de retorno

validate

Valide esse modelo recursivamente e retorne uma lista de ValidationError.

validate()

Retornos

Uma lista de erros de validação

Tipo de retorno