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.
Aufträge anordnen
Ein Array-Auftrag ist ein Auftrag, der gemeinsame Parameter wie Auftragsdefinition, vCPUs und Speicher nutzt. Es 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 parallele Jobs wie Monte-Carlo-Simulationen, parametrische Sweeps oder große Rendering-Jobs auszuführen.
AWS Batch Array-Jobs werden genau 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. Für den übergeordneten Array-Job gibt es keinen 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
Für den übergeordneten Array-Job kann der SUCCEEDED StatusSUBMITTED, PENDINGFAILED, oder eingegeben werden. Ein übergeordneter Array-Job wird aktualisiert, PENDING wenn ein untergeordneter Job auf aktualisiert wirdRUNNABLE. Weitere Hinweise zu Jobabhängigkeiten finden Sie unterAbhängigkeiten zwischen Jobs.
Zur Laufzeit wird die Umgebungsvariable AWS_BATCH_JOB_ARRAY_INDEX auf die Nummer des entsprechenden Auftrags-Array-Index des Containers festgelegt. Der erste Array-Jobindex 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 Verwenden Sie den Array-Jobindex, 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. Der Auftrag A:1 kann erst gestartet werden, wenn der Auftrag A:0 abgeschlossen 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 Job B ist vom entsprechenden Index in Job A abhängig. Der Job B:1 kann erst gestartet werden, wenn der Auftrag A:1 abgeschlossen ist.
Wenn Sie einen übergeordneten Array-Job abbrechen oder beenden, werden alle untergeordneten Jobs storniert oder damit beendet. Sie können einzelne untergeordnete Jobs stornieren oder beenden (wodurch sie in einen bestimmten FAILED Status versetzt werden), ohne dass dies Auswirkungen auf die anderen untergeordneten Jobs hat. Wenn jedoch ein untergeordneter Array-Job fehlschlägt (alleine oder durch manuelles Abbrechen oder Beenden des Jobs), schlägt auch der übergeordnete Job fehl. In diesem Szenario geht der übergeordnete Job in den Zustand über, in dem FAILED alle untergeordneten Jobs abgeschlossen sind.
Weitere Hinweise zum Suchen und Filtern von Array-Aufträgen finden Sie unterDurchsuchen von nach Aufträgen in einer Auftragswarteschlange.