Eine parallel Auftragsdefinition mit mehreren Knoten - AWS Batch

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.

Eine parallel Auftragsdefinition mit mehreren Knoten

Bevor Sie Aufträge in AWS Batch ausführen können, müssen Sie eine Auftragsdefinition erstellen. Dieser Prozess unterscheidet sich für parallele Aufträge mit einzelnen und mit mehreren Knoten geringfügig. Dieses Thema behandelt das Erstellen einer Auftragsdefinition für einen parallelen AWS Batch-Auftrag mit mehreren Knoten. Weitere Informationen finden Sie unter parallel Jobs mit mehreren Knoten.

Anmerkung

AWSFargate unterstützt keine parallel Aufträge mit mehreren Knoten.

Weitere Informationen zum Erstellen einer Definition für Aufträge mit einzelnen Knoten finden Sie unter Erstellen einer Definition für Auftragsdefinition mit einzelnen Knoten .

So erstellen Sie eine Definition für parallele Aufträge mit mehreren Knoten
  1. Öffnen Sie dieAWS Batch Konsole unter https://console.aws.amazon.com/batch/.

  2. Wählen Sie die zu verwendende Region in der Navigationsleiste aus.

  3. Wählen Sie im Navigationsbereich Auftragsdefinitionen und Erstellen aus.

  4. Geben Sie unter Name einen eindeutigen Namen für Ihre Auftragsdefinition ein. Bis zu 128 Buchstaben (Groß- und Kleinbuchstaben), Ziffern, Bindestriche und Unterstriche sind zulässig.

  5. Wählen Sie für Platform EC2.

  6. Im Abschnitt Wiederholungsstrategien können Sie angeben, wie oft ein Auftrag wiederholt werden soll. Sie können auch Bedingungen erstellen, um zu entscheiden, ob ein fehlgeschlagener Job erneut versucht werden soll. Dies basiert auf dem Abgleich der Zeichenfolge des Fehlercodes und den aufgelisteten Gründen für den Jobversuch. Weitere Informationen finden Sie unter Automatisierte Auftragswiederholungen.

    1. Geben Sie für Auftragsversuche an, wie oft Ihr Job versucht werden soll (falls er fehlschlägt). Diese Zahl muss zwischen eins (1) und zehn (10) liegen.

    2. (Optional) Wählen Sie Auswertung beim Beenden hinzufügen aus, um bis zu fünf (5) Bedingungen hinzuzufügen, um Zeichenkettenmuster mit dem Exit-Code, dem Statusgrund und dem Grund, der beim Jobversuch zurückgegeben wurde, abzugleichen. Für jede Gruppe von Bedingungen muss Action entweder auf Wiederholen (um es erneut zu versuchen, bis die Anzahl der Auftragsversuche erreicht ist) oder auf Exit gesetzt werden, um die Wiederholung des Auftrags zu beenden.

  7. (Optional) Geben Sie bei Execution timeout (Ausführungs-Timeout) die maximale Sekundenanzahl für die Ausführung Ihrer Auftragsversuche an. Wenn ein Versuch die Timeout-Dauer überschreitet, wird er gestoppt, und der Status wechselt zu FAILED. Weitere Informationen finden Sie unter Auszeiten bei Job.

  8. Wählen Sie für Multi-Node parallel die Option Multi-Node parallel aktivieren aus und führen Sie dann die folgenden Teilschritte aus. Um stattdessen eine Definition für parallele Aufträge mit einem Knoten zu erstellen, gehen Sie zu Erstellen einer Definition für Auftragsdefinition mit einzelnen Knoten .

    1. Geben Sie unter Number of Nodes (Anzahl von Knoten) die Gesamtanzahl von Knoten ein, die für Ihren Auftrag verwendet werden sollen.

    2. Unter Main node (Hauptknoten) geben Sie den für den Hauptknoten zu verwendenden Knotenindex ein. Der standardmäßige Hauptknotenindex lautet 0.

    3. Wählen Sie Knotenbereich hinzufügen aus. Dadurch wird ein Node-Bereichsabschnitt erstellt.

      1. Legen Sie unter Target nodes (Zielknoten) mit der Notation range_start:range_end den Bereich für Ihre Knotengruppe fest.

        Sie können für die Anzahl der Knoten, die Sie für Ihren Auftrag angegeben haben, bis zu fünf Knotenbereiche erstellen. Knotenbereiche verwenden den Indexwert für einen Knoten und der Knotenindex beginnt bei 0. Der Index-Bereichsendwert Ihrer letzten Knotengruppe sollte um eine Zahl unter der Anzahl der Knoten liegen, die Sie in Schritt 1 festgelegt haben. Wenn Sie beispielsweise 10 Knoten angegeben haben und eine einzelne Knotengruppe verwenden möchten, sollte Ihr Endbereich 9 sein.

      2. In den Container-Eigenschaften können Sie Eigenschaften angeben, die an den Docker-Daemon für die Knoten im Knotenbereich übergeben werden.

        1. Wählen Sie für Image das Docker-Image aus, das Sie für Ihren Job verwenden möchten. Images in der Docker Hub-Registrierung sind standardmäßig verfügbar. Sie können auch andere Repositorys mit repository-url/image:tag angeben. Bis zu 255 Buchstaben (Groß- und Kleinbuchstaben), Ziffern, Bindestriche, Unterstriche, Doppelpunkte, Punkte und Schrägstriche sind zulässig. Dieser Parameter wird Image zugeordnet im Abschnitt Create a container (Erstellen eines Containers) im Docker-Remote-API und dem IMAGE-Parameter von docker run.

          Anmerkung

          Die Docker-Image-Architektur muss der Prozessorarchitektur der Compute-Ressourcen entsprechen, für die sie geplant sind. So können beispielsweise Arm-basierte Docker-Images nur auf Arm-basierten Compute-Ressourcen laufen.

          • Bilder in öffentlichen Repositories von Amazon ECR verwenden die vollständigeregistry/repository[:tag] oderregistry/repository[@digest] Benennungskonvention (z. B.public.ecr.aws/registry_alias/my-web-app:latest).

          • Bilder in Amazon ECR-Repositories verwenden die vollständigeregistry/repository[:tag] Benennungskonvention. Beispielsweise aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest

          • Images in offiziellen Repositorys in Docker Hub verwenden einen einzelnen Namen (z. B. ubuntu oder mongo).

          • Images in anderen Repositorys in Docker Hub sind mit einem Organisationsnamen qualifiziert (z. B, amazon/amazon-ecs-agent).

          • Image in anderen Online-Repositorys sind durch einen Domänennamen zusätzlich qualifiziert (z. B, quay.io/assemblyline/ubuntu).

        2. Geben Sie unter Befehl den Befehl an, der an den Container übergeben werden soll. Bei einfachen Befehlen können Sie den Befehl wie in einer Eingabeaufforderung auf der Registerkarte Durch Leerzeichen getrennt eingeben. Überprüfen Sie anschließend, dass das JSON-Ergebnis (das an den Docker-Daemon übergeben wird) richtig ist. Zur Eingabe komplizierter Befehle (z. B. mit Sonderzeichen) wechseln Sie zur Registerkarte JSON und geben Sie das Äquivalent des Zeichenfolgen-Arrays hier ein.

          Dieser Parameter ist Cmd im Abschnitt Erstellen eines Containers der Docker Remote-API und dem Parameter COMMAND von docker run zugeordnet. Weitere Informationen zum Docker-Parameter CMD finden Sie unter https://docs.docker.com/engine/reference/builder/#cmd.

          Anmerkung

          Sie können Standardwerte für die Parametersubstitution und Platzhalter in Ihrem Befehl verwenden. Weitere Informationen finden Sie unter Parameter.

        3. Geben Sie für vCPUs die Anzahl von vCPUs ein, die für den Container reserviert werden sollen. Dieser Parameter ordnet zu CpuShares im Bereich Erstellen eines Containers der Docker Remote API und der Option --cpu-shares für die docker run zu. Jede vCPU entspricht 1.024 CPU-Anteilen. Sie müssen mindestens eine vCPU angeben.

        4. Geben Sie unter Arbeitsspeicher die Arbeitsspeichergrenze (in MiB) für die Präsentation an den Container des Auftrags an. Wenn Ihr Container versucht, das hier angegebene Limit zu überschreiten, wird der Container beendet. Dieser Parameter ordnet zu Memory im Bereich Erstellen eines Containers der Docker Remote API und der Option --memory für die docker run zu. Sie müssen mindestens 4 MB Arbeitsspeicher für einen Auftrag festlegen.

          Anmerkung

          Wenn Sie versuchen, Ihre Ressourcennutzung zu maximieren, indem Sie Ihren Aufträgen so viel Arbeitsspeicher wie möglich für einen bestimmten Instance-Typ zuweisen, lesen Sie nach unterDatenverarbeitungsressourceSpeicherverwaltung.

        5. (Optional) Geben Sie unter Anzahl der GPUs die Anzahl der GPUs an, die Ihr Job verwendet.

          Der Job wird auf einem Container mit der angegebenen Anzahl von GPUs ausgeführt, die an diesen Container angeheftet sind.

        6. Im Abschnitt Zusätzliche Konfiguration können Sie zusätzliche Parameter angeben, die mit dem Container verwendet werden sollen.

          1. (Optional) Für die Jobrolle können Sie eine IAM-Rolle angeben, die dem Container in Ihrem Job Berechtigungen zur Verwendung derAWS APIs zuweist. Diese Funktion verwendet Amazon ECS IAM-Rollen für die Aufgabenfunktionalität. Weitere Informationen, einschließlich der Konfigurationsvoraussetzungen, lesen Sie nach unter IAM-Rollen für Aufgaben im Developerhandbuch zum Amazon Elastic Container Service.

            Anmerkung

            Für Aufgaben, die auf Fargate-Ressourcen laufen, ist eine Job-Rolle erforderlich.

            Anmerkung

            Hier werden nur Rollen angezeigt, die die Amazon Elastic Container Service Task Role Vertrauensbeziehung haben. Weitere Informationen zum Erstellen einer IAM-Rolle für IhreAWS Batch Jobs finden Sie unter Erstellen einer IAM-Rolle und -Richtlinie für Ihre Aufgaben im Amazon Elastic Container Service Developer Guide.

          2. (Optional) Im Abschnitt Volumes können Sie Daten-Volumes für Ihren Auftrag angeben, die an den Auftragscontainer übergeben werden sollen.

            1. Geben Sie unter Name einen Namen für Ihr Volume ein. Bis zu 255 Buchstaben (Groß- und Kleinbuchstaben), Ziffern, Bindestriche und Unterstriche sind zulässig.

            2. (Optional) Geben Sie für Quellpfad den Pfad der Host-Instance ein, der dem Container angezeigt werden soll. Wenn Sie dieses Feld leer lassen, weist der Docker-Daemon einen Host-Pfad für Sie zu. Wenn Sie einen Quellpfad angeben, bleibt das Daten-Volume an der angegebenen Position auf der Host-Container-Instance, bis Sie es manuell löschen. Wenn der Quellpfad auf der Host-Container-Instance nicht vorhanden ist, erstellt der Docker-Daemon einen Pfad. Wenn der Speicherort nicht vorhanden ist, wird der Inhalt des Quellpfadordners in den Container exportiert.

          3. (Optional) Im Abschnitt Mount points (Mountingpunkte) können Sie Mountingpunkte als Zugang für den Auftragscontainer konfigurieren.

            1. Geben Sie für Container-Pfad den Pfad zu dem Container ein, auf dem das Host-Volume gemountet werden soll.

            2. Geben Sie für Source volume (Quell-Volume) den Namen des zu mountenden Volumes ein.

            3. Um das Volume für den Container schreibgeschützt zu konfigurieren, wählen Sie Schreibgeschützt aus.

          4. (Optional) Im Abschnitt Ulimits können Sie beliebige ulimit-Werte für den Auftragscontainer konfigurieren.

            1. Wählen Sie die Option Limit hinzufügen aus.

            2. Wählen Sie für Limitname einen anzuwendenden ulimit-Wert.

            3. Wählen Sie für Weiches Limit das weiche Limit aus, das auf den ulimit-Typ angewendet werden soll.

            4. Wählen Sie für Hartes Limit das harte Limit aus, das auf den ulimit-Typ angewendet werden soll.

          5. (Optional) Im Abschnitt Environment variables (Umgebungsvariablen) können Sie Umgebungsvariablen angeben, die an den Auftragscontainer übergeben werden sollen. Dieser Parameter ordnet zu Env im Bereich Erstellen eines Containers der Docker Remote API und der Option --env für die docker run zu.

            Wichtig

            Die Verwendung von Klartext-Umgebungsvariablen für sensible Informationen (wie etwa Zugangsdaten) wird nicht empfohlen.

            1. Wählen Sie Umgebungsvariablen hinzufügen aus.

            2. Geben Sie für Schlüssel den Schlüssel für Ihre Umgebungsvariable an.

              Anmerkung

              Umgebungsvariablen dürfen nicht mit AWS_BATCH beginnen. Diese Namenskonvention ist für Variablen reserviert, die vom AWS Batch-Dienst festgelegt werden.

            3. Geben Sie für Nutzungswert den Wert für Ihre Umgebungsvariable an.

          6. (Optional) Im Abschnitt Sicherheit können Sie Sicherheitsoptionen für den Container Ihres Auftrags konfigurieren.

            1. Wenn Sie dem Container Ihres Auftrags erhöhte Berechtigungen auf der Host-Instance (ähnlich wie der root-Benutzer) erteilen möchten, wählen Sie Privilegiert aus. Dieser Parameter ordnet zu Privileged im Bereich Erstellen eines Containers der Docker Remote API und der Option --privileged für die docker run zu.

            2. Für Benutzer geben Sie den Benutzernamen zur Verwendung innerhalb des Containers ein. Dieser Parameter ordnet zu User im Bereich Erstellen eines Containers der Docker Remote API und der Option --user für die docker run zu.

          7. (Optional) Im Abschnitt Linux Parameters (Linux-Parameter) können Sie Gerätezuordnungen für den Auftragscontainer konfigurieren, damit der Container auf ein Gerät in der Host-Instance zugreifen kann.

            1. Wählen Sie im Abschnitt Devices (Geräte) die Option Add device (Gerät hinzufügen) aus.

            2. Geben Sie für Host path (Host-Pfad) den Pfad eines Geräts in der Host-Instance an.

            3. Geben Sie für Container path (Container-Pfad) den Pfad in der Container-Instance an, um das der Host-Instance zugeordnete Gerät zugänglich zu machen. Wenn dieses Feld leer gelassen wird, wird der Hostpfad im Container verwendet.

            4. Wählen Sie für Permissions (Berechtigungen) eine oder mehrere Berechtigungen für das Gerät im Container aus. Die verfügbaren Berechtigungen sind READ, WRITE und MKNOD.

  9. Kehren Sie zu Schritt 1 zurück und wiederholen Sie den Vorgang für jede Knotengruppe, um Ihren Auftrag zu konfigurieren.

  10. (Optional) Sie können im Abschnitt Parameter Standardwerte für die Parameterersetzung sowie für Platzhalter für den Befehl angeben, der beim Starten des Containers Ihres Auftrags ausgeführt wird. Weitere Informationen finden Sie unter Parameter.

    1. Wählen Sie Parameter hinzufügen aus.

    2. Geben Sie für Schlüssel den Schlüssel für Ihren Parameter an.

    3. Geben Sie für Nutzungswert den Wert für Ihren Parameter an.

  11. (Optional) Im Abschnitt Tags können Sie den Schlüssel und den Wert für jedes Tag angeben, das mit der Auftragsdefinition verknüpft werden soll. Weitere Informationen finden Sie unter Markieren Ihrer AWS Batch-Ressourcen.

  12. Wählen Sie Auftragsdefinition erstellen aus.