Partilhar via


JobPreparationTask Classe

Uma Tarefa de Preparação de Tarefas a executar antes de quaisquer Tarefas da Tarefa num determinado Nó de Computação.

Pode utilizar a Preparação de Trabalhos para preparar um Nó para executar Tarefas para a Tarefa. As atividades geralmente realizadas na Preparação de Trabalhos incluem: Transferir ficheiros de recursos comuns utilizados por todas as Tarefas na Tarefa. A Tarefa de Preparação de Tarefas pode transferir estes ficheiros de recursos comuns para a localização partilhada no Nó. (AZ_BATCH_NODE_ROOT_DIRshared) ou iniciar um serviço local no Nó para que todas as Tarefas dessa Tarefa possam comunicar com o mesmo. Se a Tarefa de Preparação da Tarefa falhar (ou seja, esgotar a contagem de repetições antes de sair com o código de saída 0), o Batch não executará Tarefas desta Tarefa no Nó. O Nó de Computação permanece inelegível para executar Tarefas desta Tarefa até que seja recriada. O Nó de Computação permanece ativo e pode ser utilizado para outras Tarefas. A Tarefa de Preparação da Tarefa pode ser executada várias vezes no mesmo Nó. Por conseguinte, deve escrever a Tarefa de Preparação da Tarefa para processar a re-execução. Se o Nó for reiniciado, a Tarefa de Preparação da Tarefa é executada novamente no Nó de Computação antes de agendar qualquer outra Tarefa da Tarefa, se rerunOnNodeRebootAfterSuccess for verdadeira ou se a Tarefa de Preparação da Tarefa não tiver sido concluída anteriormente. Se o Nó for recriado, a Tarefa de Preparação da Tarefa é executada novamente antes de agendar qualquer Tarefa da Tarefa. O Batch repetirá tarefas quando uma operação de recuperação for acionada num Nó. Exemplos de operações de recuperação incluem (mas não estão limitados a) quando um Nó em mau estado de funcionamento é reiniciado ou um Nó de Computação desapareceu devido a uma falha do anfitrião. As repetições devido a operações de recuperação são independentes e não são contabilizadas em relação a maxTaskRetryCount. Mesmo que maxTaskRetryCount seja 0, pode ocorrer uma repetição interna devido a uma operação de recuperação. Por este motivo, todas as Tarefas devem ser idempotentes. Isto significa que as Tarefas têm de tolerar ser interrompidas e reiniciadas sem causar danos ou dados duplicados. A melhor prática para tarefas de execução prolongada é utilizar algum tipo de ponto de verificação.

Todos os parâmetros necessários têm de ser preenchidos para enviar para o 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
Necessário

O ID pode conter qualquer combinação de carateres alfanuméricos, incluindo hífenes e carateres de sublinhado, e não pode conter mais de 64 carateres. Se não especificar esta propriedade, o serviço Batch atribui um valor predefinido de "jobpreparation". Nenhuma outra Tarefa na Tarefa pode ter o mesmo ID que a Tarefa de Preparação da Tarefa. Se tentar submeter uma Tarefa com o mesmo ID, o serviço Batch rejeita o pedido com o código de erro TaskIdSameAsJobPreparationTask; se estiver a chamar a API REST diretamente, o código de estado HTTP é 409 (Conflito).

command_line
str
Necessário

Obrigatório. A linha de comandos não é executada numa shell e, por conseguinte, não pode tirar partido das funcionalidades da shell, como a expansão da variável de ambiente. Se quiser tirar partido destas funcionalidades, deve invocar a shell na linha de comandos, por exemplo, utilizando "cmd /c MyCommand" no Windows ou "/bin/sh -c MyCommand" no Linux. Se a linha de comandos se referir a caminhos de ficheiro, deve utilizar um caminho relativo (relativo ao diretório de trabalho de tarefas) ou utilizar a variável de ambiente fornecido pelo Batch (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).

container_settings
TaskContainerSettings
Necessário

As definições do contentor no qual a Tarefa de Preparação da Tarefa é executada. Quando isto é especificado, todos os diretórios recursivamente abaixo do AZ_BATCH_NODE_ROOT_DIR (a raiz de Azure Batch diretórios no nó) são mapeados para o contentor, todas as variáveis de ambiente de tarefas são mapeadas para o contentor e a linha de comandos Tarefa é executada no contentor. Os ficheiros produzidos no contentor fora do AZ_BATCH_NODE_ROOT_DIR podem não ser refletidos no disco anfitrião, o que significa que as APIs de ficheiros do Batch não conseguirão aceder a esses ficheiros.

resource_files
list[ResourceFile]
Necessário

Os ficheiros listados neste elemento estão localizados no diretório de trabalho da Tarefa. Existe um tamanho máximo para a lista de ficheiros de recursos. Quando o tamanho máximo for excedido, o pedido falhará e o código de erro de resposta será RequestEntityTooLarge. Se isto ocorrer, a coleção de ResourceFiles tem de ser reduzida em tamanho. Isto pode ser conseguido com .zip ficheiros, Pacotes de Aplicações ou Contentores do Docker.

environment_settings
list[EnvironmentSetting]
Necessário
constraints
TaskConstraints
Necessário

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

wait_for_success
bool
Necessário

Se o serviço Batch deve aguardar que a Tarefa de Preparação da Tarefa seja concluída com êxito antes de agendar quaisquer outras Tarefas da Tarefa no Nó de Computação. Uma Tarefa de Preparação de Tarefas foi concluída com êxito se sair com o código de saída 0. Se verdadeiro e a Tarefa de Preparação da Tarefa falhar num Nó, o serviço Batch repetirá a Tarefa de Preparação da Tarefa até à contagem máxima de repetições (conforme especificado no elemento constraints). Se a Tarefa ainda não tiver sido concluída com êxito após todas as repetições, o serviço Batch não agendará Tarefas da Tarefa para o Nó. O Nó permanece ativo e elegível para executar Tarefas de outras Tarefas. Se for falso, o serviço Batch não aguardará a conclusão da Tarefa de Preparação da Tarefa. Neste caso, outras Tarefas da Tarefa podem começar a ser executadas no Nó de Computação enquanto a Tarefa de Preparação da Tarefa ainda está em execução; e mesmo que a Tarefa de Preparação da Tarefa falhe, as novas Tarefas continuarão a ser agendadas no Nó de Computação. O valor predefinido é true.

user_identity
UserIdentity
Necessário

A identidade de utilizador na qual a Tarefa de Preparação de Tarefas é executada. Se for omitida, a Tarefa é executada como um utilizador não administrativo exclusivo para a Tarefa nos Nós de Computação do Windows ou um utilizador não administrativo exclusivo do Conjunto em Nós de Computação do Linux.

rerun_on_node_reboot_after_success
bool
Necessário

Se o serviço Batch deve executar novamente a Tarefa de Preparação da Tarefa após o reinício de um Nó de Computação. A Tarefa de Preparação da Tarefa é sempre novamente executada se um Nó de Computação for recriado ou se a Tarefa de Preparação da Tarefa não tiver sido concluída (por exemplo, porque o reinício ocorreu enquanto a Tarefa estava em execução). Por conseguinte, deve sempre escrever uma Tarefa de Preparação de Tarefas para ser idempotente e para se comportar corretamente se for executada várias vezes. O valor predefinido é true.

Métodos

as_dict

Devolver um ditado que pode ser JSONify com json.dump.

Opcionalmente, a utilização avançada pode utilizar uma chamada de retorno como parâmetro:

A chave é o nome do atributo utilizado no Python. Attr_desc é um ditado dos metadados. Atualmente, contém "type" com o tipo msrest e "key" com a chave codificada RestAPI. O valor é o valor atual neste objeto.

A cadeia devolvida será utilizada para serializar a chave. Se o tipo de retorno for uma lista, isto é considerado dict de resultado hierárquico.

Veja os três exemplos neste ficheiro:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

Se quiser serialização XML, pode transmitir os kwargs is_xml=True.

deserialize

Analise um str com a sintaxe RestAPI e devolva um modelo.

enable_additional_properties_sending
from_dict

Analisar um ditado com um determinado extrator de chaves devolve um modelo.

Por predefinição, considere extratores chave (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor e last_rest_key_case_insensitive_extractor)

is_xml_model
serialize

Devolver o JSON que seria enviado para o Azure a partir deste modelo.

Este é um alias para as_dict(full_restapi_key_transformer, keep_readonly=Falso).

Se quiser serialização XML, pode transmitir os kwargs is_xml=True.

validate

Valide este modelo de forma recursiva e devolva uma lista de ValidationError.

as_dict

Devolver um ditado que pode ser JSONify com json.dump.

Opcionalmente, a utilização avançada pode utilizar uma chamada de retorno como parâmetro:

A chave é o nome do atributo utilizado no Python. Attr_desc é um ditado dos metadados. Atualmente, contém "type" com o tipo msrest e "key" com a chave codificada RestAPI. O valor é o valor atual neste objeto.

A cadeia devolvida será utilizada para serializar a chave. Se o tipo de retorno for uma lista, isto é considerado dict de resultado hierárquico.

Veja os três exemplos neste ficheiro:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

Se quiser serialização XML, pode transmitir 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 chaves.

keep_readonly
valor predefinido: True

Devoluções

Um objeto compatível com JSON de ditado

Tipo de retorno

deserialize

Analise um str com a sintaxe RestAPI e devolva um modelo.

deserialize(data, content_type=None)

Parâmetros

data
str
Necessário

Um str com a estrutura RestAPI. JSON por predefinição.

content_type
str
valor predefinido: None

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

Devoluções

Uma instância deste modelo

Exceções

DeserializationError if something went wrong

enable_additional_properties_sending

enable_additional_properties_sending()

from_dict

Analisar um ditado com um determinado extrator de chaves devolve um modelo.

Por predefinição, considere extratores 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
Necessário

Um ditado com a estrutura restAPI

content_type
str
valor predefinido: None

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

key_extractors
valor predefinido: None

Devoluções

Uma instância deste modelo

Exceções

DeserializationError if something went wrong

is_xml_model

is_xml_model()

serialize

Devolver o JSON que seria enviado para o Azure a partir deste modelo.

Este é um alias para as_dict(full_restapi_key_transformer, keep_readonly=Falso).

Se quiser serialização XML, pode transmitir os kwargs is_xml=True.

serialize(keep_readonly=False, **kwargs)

Parâmetros

keep_readonly
bool
valor predefinido: False

Se quiser serializar os atributos só de leitura

Devoluções

Um objeto compatível com JSON de ditado

Tipo de retorno

validate

Valide este modelo de forma recursiva e devolva uma lista de ValidationError.

validate()

Devoluções

Uma lista de erros de validação

Tipo de retorno