JobPreparationTask Třída

Úloha přípravy, která se má spustit před libovolnými úkoly úlohy na libovolném výpočetním uzlu.

K přípravě uzlu ke spuštění úkolů pro úlohu můžete použít přípravu úlohy. Mezi aktivity běžně prováděné při přípravě úlohy patří: Stažení běžných souborů prostředků používaných všemi úkoly v úloze. Úloha přípravy úlohy může tyto společné soubory prostředků stáhnout do sdíleného umístění na uzlu. (AZ_BATCH_NODE_ROOT_DIRshared) nebo spuštění místní služby v uzlu, aby s ní mohly komunikovat všechny úkoly dané úlohy. Pokud úloha přípravy úlohy selže (tj. vyčerpá počet opakování před ukončením s ukončovacím kódem 0), služba Batch nespustí úlohy této úlohy na uzlu. Výpočetní uzel zůstává nezpůsobilý ke spouštění úloh této úlohy, dokud se znovu nedočká jeho image. Výpočetní uzel zůstává aktivní a dá se použít pro jiné úlohy. Úloha přípravy úlohy se může na stejném uzlu spustit vícekrát. Proto byste měli napsat úlohu přípravy úlohy pro zpracování opětovného spuštění. Pokud je uzel restartován, úloha přípravy úlohy se znovu spustí na výpočetním uzlu před plánováním jakékoli jiné úlohy úlohy, pokud je hodnota rerunOnNodeRebootAfterSuccess pravdivá nebo pokud se úloha přípravy úlohy dříve nedokončila. Pokud je uzel reimaged, úloha přípravy úlohy se spustí znovu před naplánování libovolné úlohy úlohy. Služba Batch zopakuje úlohy, když se na uzlu aktivuje operace obnovení. Mezi příklady operací obnovení patří (mimo jiné) restartování uzlu, který není v pořádku, nebo když výpočetní uzel zmizel kvůli selhání hostitele. Opakování kvůli operacím obnovení jsou nezávislé na a nezapočítávají se do hodnoty maxTaskRetryCount. I když je hodnota maxTaskRetryCount 0, může dojít k internímu opakování kvůli operaci obnovení. Z tohoto důvodu by všechny úkoly měly být idempotentní. To znamená, že úkoly musí tolerovat přerušení a restartování bez poškození nebo duplicitních dat. Osvědčeným postupem pro dlouhotrvající úlohy je použít nějakou formu vytváření kontrolních bodů.

Aby bylo možné odesílat do Azure, musí být vyplněny všechny požadované parametry.

Dědičnost
JobPreparationTask

Konstruktor

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)

Parametry

id
str
Vyžadováno

ID může obsahovat libovolnou kombinaci alfanumerických znaků, včetně spojovníků a podtržítků, a nesmí obsahovat více než 64 znaků. Pokud tuto vlastnost nezadáte, služba Batch přiřadí výchozí hodnotu "jobpreparation". Žádný jiný úkol v úloze nemůže mít stejné ID jako úkol přípravy úlohy. Pokud se pokusíte odeslat úlohu se stejným ID, služba Batch odmítne požadavek s kódem chyby TaskIdSameAsJobPreparationTask; Pokud voláte rozhraní REST API přímo, stavový kód HTTP je 409 (konflikt).

command_line
str
Vyžadováno

Povinná hodnota. Příkazový řádek se nespouští v prostředí, a proto nemůže využívat funkce prostředí, jako je rozšíření proměnné prostředí. Pokud chcete tyto funkce využít, měli byste vyvolat prostředí v příkazovém řádku, například pomocí příkazu "cmd /c MyCommand" ve Windows nebo "/bin/sh -c MyCommand" v Linuxu. Pokud příkazový řádek odkazuje na cesty k souborům, měl by použít relativní cestu (vzhledem k pracovnímu adresáři Úloh) nebo proměnnou prostředí poskytovanou službou Batch (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).

container_settings
TaskContainerSettings
Vyžadováno

Nastavení kontejneru, ve kterém běží úloha přípravy úlohy. Když je tato možnost zadána, všechny adresáře rekurzivně pod AZ_BATCH_NODE_ROOT_DIR (kořen Azure Batch adresářů na uzlu) se mapují do kontejneru, všechny proměnné prostředí úloh se mapují do kontejneru a příkazový řádek úlohy se spustí v kontejneru. Soubory vytvořené v kontejneru mimo AZ_BATCH_NODE_ROOT_DIR se nemusí projevit na disku hostitele, což znamená, že rozhraní API služby Batch nebudou mít k těmto souborům přístup.

resource_files
list[ResourceFile]
Vyžadováno

Soubory uvedené v tomto prvku jsou umístěny v pracovním adresáři úlohy. Seznam souborů prostředků má maximální velikost. Při překročení maximální velikosti požadavek selže a kód chyby odpovědi bude RequestEntityTooLarge. Pokud k tomu dojde, musí se zmenšit velikost kolekce ResourceFiles. Toho můžete dosáhnout pomocí souborů .zip, balíčků aplikací nebo kontejnerů Dockeru.

environment_settings
list[EnvironmentSetting]
Vyžadováno
constraints
TaskConstraints
Vyžadováno

Omezení, která platí pro úkol přípravy úlohy.

wait_for_success
bool
Vyžadováno

Zda má služba Batch čekat na úspěšné dokončení úlohy přípravy úlohy před plánováním jakýchkoli dalších úkolů úlohy na výpočetním uzlu. Úloha přípravy úlohy byla úspěšně dokončena, pokud se ukončí s ukončovacím kódem 0. Pokud je hodnota true a úloha přípravy úlohy selže na uzlu, služba Batch opakuje úlohu přípravy úlohy až do maximálního počtu opakování (jak je uvedeno v elementu constraints). Pokud se úloha ani po všech opakovaných pokusech úspěšně nedokončila, pak služba Batch neplánuje úlohy úlohy na uzel. Uzel zůstává aktivní a může spouštět úkoly jiných úloh. Pokud je hodnota false, služba Batch nebude čekat na dokončení úlohy přípravy úlohy. V tomto případě mohou na výpočetním uzlu spustit jiné úkoly úlohy, zatímco úloha přípravy úlohy je stále spuštěna. a i když úloha přípravy úlohy selže, budou se nové úkoly dál plánovat na výpočetním uzlu. Výchozí hodnotou je hodnota true.

user_identity
UserIdentity
Vyžadováno

Identita uživatele, pod kterou se úloha přípravy úlohy spustí. Pokud je tato úloha vynechána, spustí se jako uživatel bez oprávnění správce, který je jedinečný pro danou úlohu na výpočetních uzlech Windows, nebo jako uživatel bez oprávnění správce, který je jedinečný pro fond na výpočetních uzlech s Linuxem.

rerun_on_node_reboot_after_success
bool
Vyžadováno

Jestli má služba Batch znovu spustit úlohu přípravy úlohy po restartování výpočetního uzlu. Úloha přípravy úlohy se vždy znovu spustí, pokud je výpočetní uzel reimaged nebo pokud se úloha přípravy úlohy nedokončila (například proto, že při spuštění úlohy došlo k restartování). Proto byste vždy měli zapsat úlohu přípravy úlohy tak, aby byla idempotentní a aby se při vícenásobném spuštění chovala správně. Výchozí hodnotou je hodnota true.

Metody

as_dict

Vrátí dikt, který může být JSONify pomocí json.dump.

Rozšířené využití může volitelně použít zpětné volání jako parametr:

Klíč je název atributu, který se používá v Pythonu. Attr_desc je dikt metadat. V současné době obsahuje "type" s typem msrest a "key" s klíčem kódovaným restAPI. Hodnota je aktuální hodnota v tomto objektu.

Vrácený řetězec se použije k serializaci klíče. Pokud je návratovým typem seznam, považuje se za hierarchický dikt výsledku.

Podívejte se na tři příklady v tomto souboru:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

Pokud chcete serializaci XML, můžete předat kwargs is_xml=True.

deserialize

Parsujte str pomocí syntaxe RestAPI a vraťte model.

enable_additional_properties_sending
from_dict

Analýza diktu pomocí daného extraktoru klíčů vrátí model.

Ve výchozím nastavení zvažte extraktory klíčů (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor a last_rest_key_case_insensitive_extractor).

is_xml_model
serialize

Vrátí kód JSON, který se z tohoto modelu odešle do Azure.

Toto je alias pro as_dict(full_restapi_key_transformer; keep_readonly=False).

Pokud chcete serializaci XML, můžete předat kwargs is_xml=True.

validate

Rekurzivně ověřte tento model a vraťte seznam ValidationError.

as_dict

Vrátí dikt, který může být JSONify pomocí json.dump.

Rozšířené využití může volitelně použít zpětné volání jako parametr:

Klíč je název atributu, který se používá v Pythonu. Attr_desc je dikt metadat. V současné době obsahuje "type" s typem msrest a "key" s klíčem kódovaným restAPI. Hodnota je aktuální hodnota v tomto objektu.

Vrácený řetězec se použije k serializaci klíče. Pokud je návratovým typem seznam, považuje se za hierarchický dikt výsledku.

Podívejte se na tři příklady v tomto souboru:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

Pokud chcete serializaci XML, můžete předat kwargs is_xml=True.

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

Parametry

key_transformer
<xref:function>

Funkce klíčového transformátoru.

keep_readonly
výchozí hodnota: True

Návraty

Objekt kompatibilní s diktem JSON

Návratový typ

deserialize

Parsujte str pomocí syntaxe RestAPI a vraťte model.

deserialize(data, content_type=None)

Parametry

data
str
Vyžadováno

Str používající strukturu RestAPI. Ve výchozím nastavení JSON.

content_type
str
výchozí hodnota: None

Ve výchozím nastavení JSON nastavte application/xml, pokud XML.

Návraty

Instance tohoto modelu

Výjimky

DeserializationError if something went wrong

enable_additional_properties_sending

enable_additional_properties_sending()

from_dict

Analýza diktu pomocí daného extraktoru klíčů vrátí model.

Ve výchozím nastavení zvažte extraktory klíčů (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor a last_rest_key_case_insensitive_extractor).

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

Parametry

data
dict
Vyžadováno

Diktování pomocí struktury RestAPI

content_type
str
výchozí hodnota: None

Ve výchozím nastavení JSON nastavte application/xml, pokud XML.

key_extractors
výchozí hodnota: None

Návraty

Instance tohoto modelu

Výjimky

DeserializationError if something went wrong

is_xml_model

is_xml_model()

serialize

Vrátí kód JSON, který se z tohoto modelu odešle do Azure.

Toto je alias pro as_dict(full_restapi_key_transformer; keep_readonly=False).

Pokud chcete serializaci XML, můžete předat kwargs is_xml=True.

serialize(keep_readonly=False, **kwargs)

Parametry

keep_readonly
bool
výchozí hodnota: False

Pokud chcete serializovat atributy readonly

Návraty

Objekt kompatibilní s diktem JSON

Návratový typ

validate

Rekurzivně ověřte tento model a vraťte seznam ValidationError.

validate()

Návraty

Seznam chyb ověření

Návratový typ