CloudTask Klasse
Ein Azure Batch Task.
Batch wiederholt Tasks, wenn ein Wiederherstellungsvorgang auf einem Knoten ausgelöst wird. Beispiele für Wiederherstellungsvorgänge sind (aber nicht beschränkt auf), wenn ein fehlerhafter Knoten neu gestartet wird oder ein Computeknoten aufgrund eines Hostfehlers verschwunden ist. Wiederholungsversuche aufgrund von Wiederherstellungsvorgängen sind unabhängig von und werden nicht mit maxTaskRetryCount gezählt. Auch wenn maxTaskRetryCount 0 ist, kann aufgrund eines Wiederherstellungsvorgangs eine interne Wiederholung erfolgen. Aus diesem Gründen sollten alle Tasks idempotent sein. Dies bedeutet, dass Tasks es tolerieren müssen, dass sie unterbrochen und neu gestartet werden, ohne dass es zu Beschädigungen oder doppelten Daten kommt. Die bewährte Methode für Aufgaben mit langer Ausführungsdauer besteht darin, eine Form von Prüfpunkten zu verwenden.
- Vererbung
-
CloudTask
Konstruktor
CloudTask(*, id: str = None, display_name: str = None, url: str = None, e_tag: str = None, last_modified=None, creation_time=None, exit_conditions=None, state=None, state_transition_time=None, previous_state=None, previous_state_transition_time=None, command_line: str = None, container_settings=None, resource_files=None, output_files=None, environment_settings=None, affinity_info=None, constraints=None, required_slots: int = None, user_identity=None, execution_info=None, node_info=None, multi_instance_settings=None, stats=None, depends_on=None, application_package_references=None, authentication_token_settings=None, **kwargs)
Parameter
- id
- str
Die ID kann eine beliebige Kombination von alphanumerischen Zeichen einschließlich Bindestrichen und Unterstrichen enthalten und darf nicht mehr als 64 Zeichen enthalten.
- display_name
- str
Der Anzeigename muss nicht eindeutig sein und kann Unicode-Zeichen bis zu einer maximalen Länge von 1024 enthalten.
- url
- str
- e_tag
- str
Dies ist eine undurchsichtige Zeichenfolge. Sie können sie verwenden, um zu erkennen, ob sich die Aufgabe zwischen Anforderungen geändert hat. Insbesondere können Sie das ETag übergeben, wenn Sie eine Aufgabe aktualisieren, um anzugeben, dass Ihre Änderungen nur wirksam werden sollen, wenn die Aufgabe in der Zwischenzeit von niemand anderem geändert wurde.
- last_modified
- datetime
- creation_time
- datetime
- exit_conditions
- ExitConditions
Wie der Batch-Dienst reagieren soll, wenn der Task abgeschlossen ist.
Der aktuelle Status des Vorgangs. Mögliche Werte: "active", "preparing", "running", "completed"
- state_transition_time
- datetime
Der vorherige Status des Vorgangs. Diese Eigenschaft wird nicht festgelegt, wenn sich der Task im anfangszustand Aktiv befindet. Mögliche Werte: "active", "preparing", "running", "completed"
- previous_state_transition_time
- datetime
Diese Eigenschaft wird nicht festgelegt, wenn sich der Task im anfangszustand Aktiv befindet.
- command_line
- str
Bei Aufgaben mit mehreren instance wird die Befehlszeile als primäre Aufgabe ausgeführt, nachdem der primäre Task und alle Teilvorgänge die Koordinationsbefehlszeile ausgeführt haben. Die Befehlszeile wird nicht unter einer Shell ausgeführt und kann daher keine Shellfeatures wie die Erweiterung von Umgebungsvariablen nutzen. Wenn Sie solche Features nutzen möchten, sollten Sie die Shell in der Befehlszeile aufrufen, z. B. mit "cmd /c MyCommand" in Windows oder "/bin/sh -c MyCommand" unter Linux. Wenn die Befehlszeile auf Dateipfade verweist, sollte sie einen relativen Pfad (relativ zum Arbeitsverzeichnis Task) oder die von Batch bereitgestellte Umgebungsvariable (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables) verwenden.
- container_settings
- TaskContainerSettings
Die Einstellungen für den Container, unter dem der Task ausgeführt wird. Wenn für den Pool, der diesen Task ausführen wird, containerConfiguration festgelegt ist, muss auch dies festgelegt werden. Wenn für den Pool, der diesen Task ausführen wird, containerConfiguration nicht festgelegt ist, darf dies nicht festgelegt werden. Wenn dies angegeben ist, werden alle Verzeichnisse rekursiv unterhalb der AZ_BATCH_NODE_ROOT_DIR (dem Stammverzeichnis der Azure Batch Verzeichnisse auf dem Knoten) dem Container zugeordnet, alle Taskumgebungsvariablen werden dem Container zugeordnet, und die Taskbefehlszeile wird im Container ausgeführt. Dateien, die im Container außerhalb von AZ_BATCH_NODE_ROOT_DIR erstellt werden, werden möglicherweise nicht auf den Hostdatenträger wiedergegeben, was bedeutet, dass Batch-Datei-APIs nicht auf diese Dateien zugreifen können.
- resource_files
- list[ResourceFile]
Bei Aufgaben mit mehreren instance werden die Ressourcendateien nur auf den Computeknoten heruntergeladen, auf dem der primäre Task ausgeführt wird. Es gibt eine maximale Größe für die Liste der Ressourcendateien. Wenn die maximale Größe überschritten wird, schlägt die Anforderung fehl, und der Antwortfehlercode lautet RequestEntityTooLarge. In diesem Fall muss die Sammlung von ResourceFiles verkleinert werden. Dies kann mithilfe von .zip-Dateien, Anwendungspaketen oder Docker-Containern erreicht werden.
- output_files
- list[OutputFile]
Bei Aufgaben mit mehreren instance werden die Dateien nur aus dem Computeknoten hochgeladen, auf dem der primäre Task ausgeführt wird.
- environment_settings
- list[EnvironmentSetting]
- affinity_info
- AffinityInformation
Ein Lokalitätshinweis, der vom Batch-Dienst verwendet werden kann, um einen Computeknoten auszuwählen, auf dem der neue Task gestartet werden soll.
- constraints
- TaskConstraints
Die Ausführungseinschränkungen, die für diesen Task gelten.
- required_slots
- int
Die Anzahl der Zeitplanungsslots, die für die Ausführung des Tasks erforderlich sind. Der Standardwert ist 1. Die Ausführung eines Tasks auf einem Computeknoten kann nur geplant werden, wenn der Knoten über genügend freie Zeitplanungsslots verfügt. Bei Aufgaben mit mehreren instance muss dies 1 sein.
- user_identity
- UserIdentity
Die Benutzeridentität, unter der der Task ausgeführt wird. Wenn der Task nicht angegeben wird, wird er als nicht administrativer Benutzer ausgeführt, der für den Task eindeutig ist.
- node_info
- ComputeNodeInformation
Informationen zum Computeknoten, auf dem der Task ausgeführt wurde.
- multi_instance_settings
- MultiInstanceSettings
Ein -Objekt, das angibt, dass es sich bei der Aufgabe um einen Task mit mehreren instance handelt, und das Informationen zum Ausführen des Multi-instance-Tasks enthält.
- depends_on
- TaskDependencies
Die Aufgaben, von denen dieser Task abhängt. Dieser Task wird erst geplant, wenn alle Aufgaben, von denen er abhängt, erfolgreich abgeschlossen wurden. Wenn eine dieser Tasks fehlschlägt und die Wiederholungsanzahl aufgebraucht ist, wird dieser Task nie geplant.
- application_package_references
- list[ApplicationPackageReference]
Anwendungspakete werden heruntergeladen und in einem freigegebenen Verzeichnis bereitgestellt, nicht im Aufgabenarbeitsverzeichnis. Wenn sich ein Paket, auf das verwiesen wird, bereits auf dem Knoten befindet und auf dem neuesten Stand ist, wird es daher nicht erneut heruntergeladen. Die vorhandene Kopie auf dem Computeknoten wird verwendet. Wenn ein Paket, auf das verwiesen wird, nicht installiert werden kann, z. B. weil das Paket gelöscht wurde oder der Download fehlgeschlagen ist, schlägt der Task fehl.
- authentication_token_settings
- AuthenticationTokenSettings
Die Einstellungen für ein Authentifizierungstoken, das der Task zum Ausführen von Batch-Dienstvorgängen verwenden kann. Wenn diese Eigenschaft festgelegt ist, stellt der Batch-Dienst dem Task ein Authentifizierungstoken bereit, das zum Authentifizieren von Batch-Dienstvorgängen verwendet werden kann, ohne dass ein Kontozugriffsschlüssel erforderlich ist. Das Token wird über die umgebungsvariable AZ_BATCH_AUTHENTICATION_TOKEN bereitgestellt. Die Vorgänge, die der Task mit dem Token ausführen kann, hängen von den Einstellungen ab. Beispielsweise kann eine Aufgabe Auftragsberechtigungen anfordern, um dem Auftrag weitere Aufgaben hinzuzufügen, oder die status des Auftrags oder anderer Aufgaben unter dem Auftrag überprüfen.
Methoden
as_dict |
Gibt ein Dict zurück, das mit json.dump JSONify sein kann. Bei erweiterter Verwendung kann optional ein Rückruf als Parameter verwendet werden: Key ist der Attributname, der in Python verwendet wird. Attr_desc ist ein Diktat von Metadaten. Enthält derzeit "type" mit dem Msrest-Typ und "key" mit dem RestAPI-codierten Schlüssel. Value ist der aktuelle Wert in diesem Objekt. Die zurückgegebene Zeichenfolge wird verwendet, um den Schlüssel zu serialisieren. Wenn der Rückgabetyp eine Liste ist, wird dies als hierarchische Ergebnisdikt betrachtet. Sehen Sie sich die drei Beispiele in dieser Datei an:
Wenn Sie eine XML-Serialisierung wünschen, können Sie die kwargs is_xml=True übergeben. |
deserialize |
Analysieren Sie eine str mithilfe der RestAPI-Syntax, und geben Sie ein Modell zurück. |
enable_additional_properties_sending | |
from_dict |
Analysieren eines Diktats mit dem angegebenen Schlüsselextraktor gibt ein Modell zurück. Berücksichtigen Sie standardmäßig Schlüsselextraktoren (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor und last_rest_key_case_insensitive_extractor) |
is_xml_model | |
serialize |
Gibt den JSON-Code zurück, der von diesem Modell an Azure gesendet wird. Dies ist ein Alias für as_dict(full_restapi_key_transformer, keep_readonly=False). Wenn Sie eine XML-Serialisierung wünschen, können Sie die kwargs is_xml=True übergeben. |
validate |
Überprüfen Sie dieses Modell rekursiv, und geben Sie eine Liste von ValidationError zurück. |
as_dict
Gibt ein Dict zurück, das mit json.dump JSONify sein kann.
Bei erweiterter Verwendung kann optional ein Rückruf als Parameter verwendet werden:
Key ist der Attributname, der in Python verwendet wird. Attr_desc ist ein Diktat von Metadaten. Enthält derzeit "type" mit dem Msrest-Typ und "key" mit dem RestAPI-codierten Schlüssel. Value ist der aktuelle Wert in diesem Objekt.
Die zurückgegebene Zeichenfolge wird verwendet, um den Schlüssel zu serialisieren. Wenn der Rückgabetyp eine Liste ist, wird dies als hierarchische Ergebnisdikt betrachtet.
Sehen Sie sich die drei Beispiele in dieser Datei an:
attribute_transformer
full_restapi_key_transformer
last_restapi_key_transformer
Wenn Sie eine XML-Serialisierung wünschen, können Sie die kwargs is_xml=True übergeben.
as_dict(keep_readonly=True, key_transformer=<function attribute_transformer>, **kwargs)
Parameter
- key_transformer
- <xref:function>
Eine Schlüsseltransformatorfunktion.
- keep_readonly
Gibt zurück
Ein JSON-kompatibles Diktatobjekt
Rückgabetyp
deserialize
Analysieren Sie eine str mithilfe der RestAPI-Syntax, und geben Sie ein Modell zurück.
deserialize(data, content_type=None)
Parameter
Gibt zurück
Eine instance dieses Modells
Ausnahmen
enable_additional_properties_sending
enable_additional_properties_sending()
from_dict
Analysieren eines Diktats mit dem angegebenen Schlüsselextraktor gibt ein Modell zurück.
Berücksichtigen Sie standardmäßig Schlüsselextraktoren (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor und last_rest_key_case_insensitive_extractor)
from_dict(data, key_extractors=None, content_type=None)
Parameter
- key_extractors
Gibt zurück
Eine instance dieses Modells
Ausnahmen
is_xml_model
is_xml_model()
serialize
Gibt den JSON-Code zurück, der von diesem Modell an Azure gesendet wird.
Dies ist ein Alias für as_dict(full_restapi_key_transformer, keep_readonly=False).
Wenn Sie eine XML-Serialisierung wünschen, können Sie die kwargs is_xml=True übergeben.
serialize(keep_readonly=False, **kwargs)
Parameter
- keep_readonly
- bool
Wenn Sie die schreibgeschützten Attribute serialisieren möchten
Gibt zurück
Ein JSON-kompatibles Diktatobjekt
Rückgabetyp
validate
Überprüfen Sie dieses Modell rekursiv, und geben Sie eine Liste von ValidationError zurück.
validate()
Gibt zurück
Eine Liste mit Validierungsfehlern
Rückgabetyp
Azure SDK for Python