JobPreparationTask Класс

Задача подготовки задания, выполняемая перед любыми задачами задания на любом вычислительном узле.

Подготовку задания можно использовать для подготовки узла к выполнению задач для задания. К действиям, обычно выполняемым при подготовке задания, относятся: скачивание общих файлов ресурсов, используемых всеми задачами в задании. Задача подготовки задания может скачивать эти общие файлы ресурсов в общее расположение на узле. (AZ_BATCH_NODE_ROOT_DIRshared) или запуск локальной службы на узле, чтобы все задачи этого задания могли взаимодействовать с ним. Если задача подготовки задания завершается сбоем (то есть исчерпает количество повторных попыток перед выходом с кодом выхода 0), пакетная служба не будет выполнять задачи этого задания на узле. Вычислительный узел не может выполнять задачи этого задания до тех пор, пока не будет переосмыслен. Вычислительный узел остается активным и может использоваться для других заданий. Задача подготовки задания может выполняться несколько раз на одном узле. Поэтому необходимо написать задачу подготовки задания для обработки повторного выполнения. Если узел перезагружается, задача подготовки задания снова запускается на вычислительном узле перед планированием любой другой задачи задания, если rerunOnNodeRebootAfterSuccess имеет значение true или если задача подготовки задания не была завершена ранее. Если узел переосмыслен, задача подготовки задания выполняется снова перед планированием любой задачи задания. Пакетная служба будет повторять задачи при активации операции восстановления на узле. Примеры операций восстановления включают (но не ограничиваются) перезагрузкой неработоспособного узла или исчезновения вычислительного узла из-за сбоя узла. Повторные попытки из-за операций восстановления не зависят от maxTaskRetryCount и не учитываются. Даже если maxTaskRetryCount имеет значение 0, может произойти внутренняя повторная попытка из-за операции восстановления. По этой причине все задачи должны быть идемпотентными. Это означает, что задачи должны допускать прерывание и перезапуск без повреждения или дублирования данных. Для длительных задач рекомендуется использовать определенную форму создания контрольных точек.

Для отправки в Azure необходимо заполнить все необходимые параметры.

Наследование
JobPreparationTask

Конструктор

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)

Параметры

id
str
Обязательно

Идентификатор может содержать любое сочетание буквенно-цифровых символов, включая дефисы и символы подчеркивания, и не может содержать более 64 символов. Если это свойство не указано, пакетная служба назначает значение по умолчанию jobpreparation. Никакая другая задача в задании не может иметь тот же идентификатор, что и задача подготовки задания. При попытке отправить задачу с тем же идентификатором пакетная служба отклоняет запрос с кодом ошибки TaskIdSameAsJobPreparationTask; Если вы вызываете REST API напрямую, код состояния HTTP — 409 (конфликт).

command_line
str
Обязательно

Обязательный. Командная строка не выполняется в оболочке и поэтому не может использовать преимущества таких функций оболочки, как расширение переменной среды. Если вы хотите воспользоваться преимуществами таких функций, следует вызвать оболочку в командной строке, например с помощью cmd /c MyCommand в Windows или /bin/sh -c MyCommand в Linux. Если командная строка ссылается на пути к файлам, она должна использовать относительный путь (относительно рабочего каталога задачи) или переменную среды, предоставленную пакетной службой (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).

container_settings
TaskContainerSettings
Обязательно

Параметры контейнера, в котором выполняется задача подготовки задания. Если этот параметр указан, все каталоги рекурсивно под AZ_BATCH_NODE_ROOT_DIR (корневой каталог пакетная служба Azure на узле) сопоставляются с контейнером, все переменные среды задач сопоставляются с контейнером, а командная строка задачи выполняется в контейнере. Файлы, созданные в контейнере за пределами AZ_BATCH_NODE_ROOT_DIR, могут не отражаться на диске узла, а это означает, что API пакетной службы не смогут получить доступ к этим файлам.

resource_files
list[ResourceFile]
Обязательно

Файлы, перечисленные в этом элементе, находятся в рабочем каталоге задачи. Существует максимальный размер списка файлов ресурсов. При превышении максимального размера запрос завершится ошибкой, а код ошибки ответа — RequestEntityTooLarge. В этом случае необходимо уменьшить размер коллекции ResourceFiles. Это можно сделать с помощью .zip файлов, пакетов приложений или контейнеров Docker.

environment_settings
list[EnvironmentSetting]
Обязательно
constraints
TaskConstraints
Обязательно

Ограничения, применяемые к задаче подготовки задания.

wait_for_success
bool
Обязательно

Должна ли пакетная служба ожидать успешного завершения задачи подготовки задания перед планированием других задач задания на вычислительном узле. Задача подготовки задания успешно завершена, если она завершается с кодом выхода 0. Если значение true и задача подготовки задания на узле завершается сбоем, пакетная служба повторяет задачу подготовки задания до максимального количества повторных попыток (как указано в элементе constraints). Если задача по-прежнему не была успешно завершена после всех повторных попыток, пакетная служба не будет планировать задачи задания на узел. Узел остается активным и может выполнять задачи других заданий. Если значение равно false, пакетная служба не будет ожидать завершения задачи подготовки задания. В этом случае другие задачи задания могут начать выполнение на вычислительном узле во время выполнения задачи подготовки задания. и даже если задача подготовки задания завершается сбоем, новые задачи будут по-прежнему планироваться на вычислительном узле. Значение по умолчанию — true.

user_identity
UserIdentity
Обязательно

Удостоверение пользователя, под которым выполняется задача подготовки задания. Если этот параметр опущен, задача выполняется от имени пользователя без прав администратора, уникального для задачи на вычислительных узлах Windows, или от имени пользователя, не являющегося административным, уникальным для пула на вычислительных узлах Linux.

rerun_on_node_reboot_after_success
bool
Обязательно

Указывает, должна ли пакетная служба повторно запускать задачу подготовки задания после перезагрузки вычислительного узла. Задача подготовки задания всегда выполняется повторно, если вычислительный узел переосмыслен или если задача подготовки задания не была завершена (например, из-за перезагрузки во время выполнения задачи). Поэтому всегда следует писать задачу подготовки задания, чтобы она была идемпотентной и правильно функционировала при многократном выполнении. Значение по умолчанию — true.

Методы

as_dict

Возвращает диктовку, которая может иметь значение JSONify с помощью json.dump.

При дополнительном использовании можно использовать обратный вызов в качестве параметра:

Ключ — это имя атрибута, используемого в Python. Attr_desc — это диктовка метаданных. В настоящее время содержит тип с типом msrest и key с ключом в кодировке RestAPI. Значение — это текущее значение в этом объекте.

Возвращаемая строка будет использоваться для сериализации ключа. Если тип возвращаемого значения является списком, это считается иерархическим результирующим диктом.

См. три примера в этом файле:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

Если требуется сериализация XML, можно передать kwargs is_xml=True.

deserialize

Выполните синтаксический анализ str с помощью синтаксиса RestAPI и верните модель.

enable_additional_properties_sending
from_dict

Синтаксический анализ диктовки с помощью заданного средства извлечения ключей возвращает модель.

По умолчанию рекомендуется использовать средства извлечения ключей (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor и last_rest_key_case_insensitive_extractor).

is_xml_model
serialize

Возвращает json, который будет отправлен в Azure из этой модели.

Это псевдоним для as_dict(full_restapi_key_transformer, keep_readonly=False).

Если требуется xml-сериализация, можно передать kwargs is_xml=True.

validate

Рекурсивная проверка этой модели и возврат списка ValidationError.

as_dict

Возвращает диктовку, которая может иметь значение JSONify с помощью json.dump.

При дополнительном использовании можно использовать обратный вызов в качестве параметра:

Ключ — это имя атрибута, используемого в Python. Attr_desc — это диктовка метаданных. В настоящее время содержит тип с типом msrest и key с ключом в кодировке RestAPI. Значение — это текущее значение в этом объекте.

Возвращаемая строка будет использоваться для сериализации ключа. Если тип возвращаемого значения является списком, это считается иерархическим результирующим диктом.

См. три примера в этом файле:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

Если требуется сериализация XML, можно передать kwargs is_xml=True.

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

Параметры

key_transformer
<xref:function>

Функция преобразователя ключей.

keep_readonly
значение по умолчанию: True

Возвращаемое значение

Объект, совместимый с JSON для диктовки

Возвращаемый тип

deserialize

Выполните синтаксический анализ str с помощью синтаксиса RestAPI и верните модель.

deserialize(data, content_type=None)

Параметры

data
str
Обязательно

Str, использующий структуру RestAPI. JSON по умолчанию.

content_type
str
значение по умолчанию: None

JSON по умолчанию задайте значение application/xml, если XML.

Возвращаемое значение

Экземпляр этой модели

Исключения

DeserializationError if something went wrong

enable_additional_properties_sending

enable_additional_properties_sending()

from_dict

Синтаксический анализ диктовки с помощью заданного средства извлечения ключей возвращает модель.

По умолчанию рекомендуется использовать средства извлечения ключей (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor и last_rest_key_case_insensitive_extractor).

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

Параметры

data
dict
Обязательно

Диктовка, использующий структуру RestAPI

content_type
str
значение по умолчанию: None

JSON по умолчанию задайте значение application/xml, если XML.

key_extractors
значение по умолчанию: None

Возвращаемое значение

Экземпляр этой модели

Исключения

DeserializationError if something went wrong

is_xml_model

is_xml_model()

serialize

Возвращает json, который будет отправлен в Azure из этой модели.

Это псевдоним для as_dict(full_restapi_key_transformer, keep_readonly=False).

Если требуется xml-сериализация, можно передать kwargs is_xml=True.

serialize(keep_readonly=False, **kwargs)

Параметры

keep_readonly
bool
значение по умолчанию: False

Если вы хотите сериализовать атрибуты только для чтения

Возвращаемое значение

Объект, совместимый с JSON для диктовки

Возвращаемый тип

validate

Рекурсивная проверка этой модели и возврат списка ValidationError.

validate()

Возвращаемое значение

Список ошибок проверки

Возвращаемый тип