Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Ordnen Sie Jobs an
Ein Array-Job ist ein Job, der gemeinsame Parameter wie die Jobdefinition und den Arbeitsspeicher verwendet. vCPUs Er wird als Sammlung verwandter, aber separater Basisjobs ausgeführt, die möglicherweise auf mehrere Hosts verteilt sind und gleichzeitig ausgeführt werden. Array-Jobs sind die effizienteste Methode, um extrem parallel Jobs wie Monte-Carlo-Simulationen, parametrische Sweeps oder umfangreiche Rendering-Jobs auszuführen.
AWS Batch Array-Jobs werden genauso wie normale Jobs eingereicht. Sie geben jedoch eine Array-Größe (zwischen 2 und 10.000) an. Diese legt fest, wie viele untergeordnete Aufträge im Array ausgeführt werden sollen. Wenn Sie einen Auftrag mit einer Array-Größe von 1000 senden, wird ein einzelner Auftrag ausgeführt und erzeugt 1000 untergeordnete Aufträge. Der Array-Auftrag ist eine Referenz oder ein Zeiger, um alle untergeordneten Aufträge zu verwalten. Auf diese Weise können Sie große Workloads mit einer einzigen Abfrage einreichen. Das im attemptDurationSeconds
Parameter angegebene Timeout gilt für jeden untergeordneten Job. Der übergeordnete Array-Job hat kein Timeout.
Wenn Sie einen Array-Job einreichen, erhält der übergeordnete Array-Job eine normale AWS Batch Job-ID. Jeder untergeordnete Job hat dieselbe Basis-ID. Der Array-Index für den untergeordneten Job wird jedoch an das Ende der übergeordneten ID angehängt, z. B.
für den ersten untergeordneten Job des Arrays. example_job_ID
:0
Der übergeordnete Array-Job kann den SUCCEEDED
Status SUBMITTED
PENDING
,FAILED
, oder annehmen. Ein übergeordneter Array-Job wird aktualisiertPENDING
, wenn ein untergeordneter Job aktualisiert wirdRUNNABLE
. Weitere Hinweise zu Auftragsabhängigkeiten finden Sie unterArbeitsabhängigkeiten.
Zur Laufzeit wird die Umgebungsvariable AWS_BATCH_JOB_ARRAY_INDEX
auf die Nummer des entsprechenden Auftrags-Array-Index des Containers festgelegt. Der erste Array-Auftragsindex ist nummeriert0
, und die nachfolgenden Versuche erfolgen in aufsteigender Reihenfolge (z. B. 1, 2 und 3). Sie können diesen Indexwert dazu verwenden, zu steuern, wie Ihre untergeordneten Array-Auftragselemente differenziert werden. Weitere Informationen finden Sie unter Tutorial: Verwenden Sie den Array-Job-Index, um die Jobdifferenzierung zu steuern.
Für Array-Auftrags-Abhängigkeiten können Sie einen Typ für eine Abhängigkeit angeben (z. B. SEQUENTIAL
oder N_TO_N
). Sie können eine SEQUENTIAL
-Typabhängigkeit angeben, ohne eine Auftrags-ID anzugeben, sodass jeder untergeordnete Array-Auftrag sequentiell abgeschlossen wird (beginnend mit Index 0). Wenn Sie z. B. einen Array-Auftrag mit einer Array-Größe von 100 senden und eine Abhängigkeit vom Typ SEQUENTIAL
angeben, werden 100 untergeordnete Aufträge sequentiell erzeugt, wobei der erste untergeordnete Auftrag erfolgreich sein muss, bevor der nächste untergeordnete Auftrag startet. Die folgende Abbildung zeigt Auftrag A, einen Array-Auftrag mit einer Array-Größe von 10. Jeder Auftrag im untergeordneten Index von Auftrag A ist vom vorherigen untergeordneten Auftrag abhängig. Auftrag A:1 kann erst gestartet werden, wenn Auftrag A:0 beendet ist.
Sie können auch eine Abhängigkeit vom N_TO_N
-Typ mit einer Aufgaben-ID für Array-Aufgaben angeben. So muss jeder untergeordnete Index dieses Auftrags warten, bis der entsprechende untergeordnete Index jeder Abhängigkeit abgeschlossen ist. Die folgende Abbildung zeigt Job A und Job B, zwei Array-Jobs mit einer Array-Größe von jeweils 10.000. Jeder Auftrag im untergeordneten Index von Auftrag B ist abhängig von dem entsprechenden Index in Auftrag A. Auftrag B:1 kann erst gestartet werden, wenn Auftrag A:1 beendet ist.
Wenn Sie einen übergeordneten Array-Auftrag abbrechen oder beenden, werden alle untergeordneten Jobs gleichzeitig storniert oder beendet. Sie können einzelne untergeordnete Jobs stornieren oder beenden (wodurch sie in einen FAILED
Status versetzt werden), ohne dass sich dies auf die anderen untergeordneten Jobs auswirkt. Wenn jedoch ein untergeordneter Array-Auftrag fehlschlägt (eigenständig oder durch manuelles Abbrechen oder Beenden des Auftrags), schlägt auch der übergeordnete Job fehl. In diesem Szenario geht der übergeordnete Job zu dem FAILED
Zeitpunkt über, zu dem alle untergeordneten Jobs abgeschlossen sind.