

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.

# Erstellen Sie eine Einzelknoten-Auftragsdefinition mit mehreren Containern auf Amazon EC2 EC2-Ressourcen
<a name="create-job-definition-single-node-multi-container"></a>

Gehen Sie wie folgt vor, um eine Auftragsdefinition für einen einzelnen Knoten mit mehreren Containern auf Amazon Elastic Compute Cloud (Amazon EC2) -Ressourcen zu erstellen.

**So erstellen Sie eine neue Jobdefinition auf Amazon EC2 EC2-Ressourcen:**

1. Öffnen Sie die AWS Batch Konsole unter. [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/)

1. Wählen Sie in der Navigationsleiste die aus, die Sie verwenden AWS-Region möchten.

1. Wählen Sie im linken Navigationsbereich **Jobdefinitionen** aus.

1. Wählen Sie **Erstellen** aus.

1. Wählen Sie als **Orchestrierungstyp** **Amazon Elastic Compute Cloud (Amazon EC2**).

1. Deaktivieren Sie für **Jobdefinitionsstruktur** die Option **Legacy-ContainerProperties-Strukturverarbeitung verwenden**.

1. Deaktivieren Sie für die **EC2-Plattformkonfiguration** die Option **Parallelverarbeitung mit mehreren Knoten aktivieren**.

1. Wählen Sie **Weiter** aus.

1. Geben Sie im Abschnitt **Allgemeine Konfiguration** Folgendes ein:

   1. Geben Sie unter **Name** einen eindeutigen Namen für Ihre Jobdefinition ein. Der Name kann bis zu 128 Zeichen lang sein. Er kann Groß- und Kleinbuchstaben, Zahlen, Bindestriche (-) und Unterstriche (\_) enthalten.

   1. Geben Sie für **Ausführungstimeout — *optional*** den Timeout-Wert (in Sekunden) ein. Das Ausführungs-Timeout ist die Zeitspanne, bis ein unvollendeter Job beendet wird. Wenn ein Versuch die Timeoutdauer überschreitet, wird der Versuch gestoppt und erhält einen Status. `FAILED` Weitere Informationen finden Sie unter [Timeouts bei der Job](job_timeouts.md). Der Mindestwert beträgt 60 Sekunden.

   1. Aktivieren Sie die **Priorität der Zeitplanung — *optional***. Geben Sie einen Wert für die Planungspriorität zwischen 0 und 100 ein. Höhere Werte erhalten eine höhere Priorität.

   1. Erweitern Sie **Tags — *optional*** und wählen Sie dann **Tag hinzufügen** aus, um der Ressource Tags hinzuzufügen. Geben Sie einen Schlüssel und einen optionalen Wert ein und wählen Sie dann **Tag hinzufügen**.

   1. Aktivieren Sie die **Option Tags weitergeben, um Tags** aus dem Job und der Auftragsdefinition an die Amazon ECS-Aufgabe weiterzugeben.

1. Geben Sie im Abschnitt **Strategie wiederholen — *optional*** Folgendes ein:

   1. Geben Sie für **Auftragsversuche** ein, wie oft AWS Batch versucht wird, den Job in den `RUNNABLE` Status zu versetzen. Geben Sie eine Zahl zwischen 1 und 10 ein.

   1. Wählen Sie **unter Bedingungen für die Wiederholungsstrategie** die Option Beim **Beenden bewerten hinzufügen** aus. Geben Sie mindestens einen Parameterwert ein und wählen Sie dann eine **Aktion** aus. Für jeden Satz von Bedingungen muss **Aktion** entweder auf **Erneut versuchen** oder **Beenden** gesetzt sein. Diese Aktionen bedeuten Folgendes:
      + **Wiederholen** — AWS Batch Wiederholt die Versuche, bis die von Ihnen angegebene Anzahl von Auftragsversuchen erreicht ist.
      + **Beenden** — AWS Batch beendet die Wiederholung des Auftrags.
**Wichtig**  
Wenn Sie „Beim **Beenden bewerten hinzufügen**“ wählen, müssen Sie mindestens einen Parameter konfigurieren und entweder eine **Aktion** auswählen oder „Beim **Beenden auswerten entfernen**“ wählen.

1. Geben Sie im Abschnitt **Aufgabeneigenschaften** Folgendes ein:

   1. Wählen Sie für **Ausführungsrolle — *bedingt*** eine Rolle aus, damit Amazon ECS-Agenten AWS API-Aufrufe in Ihrem Namen tätigen können. Weitere Informationen zur Erstellung einer **Ausführungsrolle** finden Sie unter[Tutorial: Erstellen Sie die IAM-Ausführungsrolle](create-execution-role.md).

   1. Wählen Sie den **ECS-Ausführungsbefehl** aktivieren, um den direkten Zugriff auf die Amazon ECS-Container-Shell zu aktivieren und das Host-Betriebssystem zu umgehen. Sie müssen eine **Aufgabenrolle** wählen.
**Wichtig**  
Der **ECS-Befehl Execute** setzt voraus, dass das Dateisystem beschreibbar ist. 

   1. Wählen Sie für **Aufgabenrolle** eine Amazon ECS Identity and Access Management (IAM) -Rolle aus, damit der Container AWS API-Aufrufe in Ihrem Namen tätigen kann. Weitere Informationen finden Sie unter [Amazon ECS-Aufgaben-IAM-Rolle](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) im *Amazon Elastic Container Service Developer Guide*.

   1. Wählen Sie für den **IPC-Modus**`host`,`task`, oder. `none` Wenn angegeben, teilen `host` sich alle Container, die sich innerhalb der Aufgaben befinden, die den Host-IPC-Modus auf derselben Container-Instance spezifiziert haben, dieselben IPC-Ressourcen mit der Host-Amazon EC2-Instance. Wenn eine Aufgabe angegeben ist, teilen sich alle Container, die sich innerhalb der angegebenen Aufgabe befinden, dieselben IPC-Ressourcen. Wenn keine angegeben ist, sind IPC-Ressourcen in den Containern einer Aufgabe privat und werden nicht mit anderen Containern in einer Aufgabe oder auf der Container-Instance gemeinsam genutzt. Wenn kein Wert angegeben ist, hängt die gemeinsame Nutzung des IPC-Ressourcen-Namespace von der Einstellung des Docker-Daemons in der Container-Instance ab.

   1. Wählen Sie für **den PID-Modus** `host` oder`task`. Für die Überwachung von Beiwagen benötigt `pidMode` möglicherweise Informationen über andere Container, die in der gleichen Aufgabe laufen. Wenn angegeben, teilen `host` sich alle Container innerhalb der Aufgaben, die den Host-PID-Modus auf derselben Container-Instance angegeben haben, denselben Prozess-Namespace mit der Host-Amazon EC2-Instance. Wenn `task` angegeben ist, teilen sich alle Container innerhalb der angegebenen Aufgabe den gleichen Prozess-Namespace. Wenn kein Wert angegeben wird, ist der Standard ein privater Namespace für jeden Container. 

1. Geben Sie im Abschnitt „**Verbrauchbare Ressource**“ Folgendes ein:

   1. Geben Sie einen eindeutigen **Namen** und den **angeforderten Wert** ein.

   1. Sie können weitere verbrauchbare Ressourcen hinzufügen, indem Sie „**Verbrauchbare Ressource hinzufügen**“ wählen.

1. Geben Sie im Bereich **Speicher** Folgendes ein:

   1. Geben Sie einen **Namen** und einen **Quellpfad** für das Volume ein und wählen Sie dann **Volume hinzufügen**. Sie können sich auch dafür entscheiden, EFS aktivieren zu aktivieren.

   1. Sie können weitere Volumes hinzufügen, indem Sie **Volume hinzufügen** wählen.

1. Wählen Sie **unter Parameter** die Option **Parameter hinzufügen** aus, um Platzhalter für die Parametersetzung als **Schlüssel** - und optionale **Wertepaare** hinzuzufügen.

1. Wählen Sie „**Nächste** Seite“.

1. Gehen Sie im Abschnitt **Container-Konfiguration** wie folgt vor:

   1. Geben Sie unter **Name** einen Namen für den Container ein.

   1. Aktivieren Sie für **Essential-Container** die Option, wenn der Container essenziell ist.

   1. Wählen Sie **unter Bild** das Docker Bild 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. Der Name kann bis zu 225 Zeichen lang sein. Er kann Groß- und Kleinbuchstaben, Zahlen, Bindestriche (-), Unterstriche (\_), Doppelpunkte (:), Schrägstriche (/) und Zahlenzeichen (\#) enthalten. Dieser Parameter wird `Image` zugeordnet im Abschnitt [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) (Erstellen eines Containers) im [Docker-Remote-API](https://docs.docker.com/engine/api/v1.38/) und dem `IMAGE`-Parameter von [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).
**Anmerkung**  
Die Docker-Image-Architektur muss der Prozessorarchitektur der Compute-Ressourcen entsprechen, für die sie geplant sind. Beispielsweise können ARM-basierte Docker-Images nur auf ARM-basierten Rechenressourcen ausgeführt werden.
      + Bilder in öffentlichen Amazon ECR-Repositorys verwenden die vollständigen `registry/repository[:tag]` oder die `registry/repository[@digest]` Namenskonventionen (z. B.`public.ecr.aws/{{registry_alias}}/{{my-web-app}}:{{latest}}`).
      + Bilder in Amazon ECR-Repositorys verwenden die vollständige `registry/repository[:tag]` Namenskonvention (z. B. `{{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 Domain-Namen zusätzlich qualifiziert (z. B. `quay.io/assemblyline/ubuntu`).

   1. Konfigurieren Sie für **die Ressourcenanforderungen** jedes der folgenden Elemente:

      1. Wählen Sie für **v CPUs** die Nummer von CPUs für den Container.

      1. Wählen Sie unter **Speicher** die Speichermenge für den Container aus.

      1. Wählen Sie für **GPU — *optional*** die Nummer von GPUs für den Container aus.

   1. Für **Benutzer** geben Sie den Benutzernamen zur Verwendung innerhalb des Containers ein.

   1. **Aktivieren Sie die Option „Schreibgeschütztes Dateisystem** aktivieren“, um den Schreibzugriff auf das Volume zu unterbinden.

   1. Aktivieren Sie „**Privilegiert**“, um dem Job-Container ähnlich wie dem Root-Benutzer erweiterte Rechte auf der Host-Instance zu gewähren. 

   1. Geben Sie für **Command** die Befehle als entsprechende **JSON-String-Array-Entsprechung** in das Feld ein.

      Dieser Parameter ist `Cmd` im Abschnitt [Erstellen eines Containers](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) der [Docker Remote-API](https://docs.docker.com/engine/api/v1.38/) und dem Parameter `COMMAND` von [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/) zugeordnet. Weitere Informationen zu dem Docker `CMD` Parameter finden Sie unter [https://docs.docker.com/engine/reference/builder/](https://docs.docker.com/engine/reference/builder/#cmd) \#cmd.
**Anmerkung**  
Sie können Standardwerte für die Parameterersetzung und Platzhalter in Ihrem Befehl verwenden. Weitere Informationen finden Sie unter [Parameter](job_definition_parameters.md#parameters).

   1. Geben Sie für **Repository-Anmeldeinformationen — *optional*** den ARN des Geheimnisses ein, das Ihre Anmeldeinformationen enthält.

   1. Wählen Sie für **Umgebungsvariablen — *optional*** die Option **Umgebungsvariablen hinzufügen aus, um Umgebungsvariablen** hinzuzufügen, die an den Container übergeben werden sollen.

   1. Gehen Sie im Abschnitt **Linux-Parameter — *optional*** wie folgt vor:

      1. **Aktivieren Sie die Option Init-Prozess** aktivieren, um einen Init-Prozess innerhalb des Containers auszuführen. 

      1. Geben Sie für **Größe des gemeinsamen Speichers** die Größe (in MiB) des Volumes /dev/shm ein

      1. Geben Sie für **Max. Swap-Größe** die Gesamtmenge an Swap-Speicher (in MiB) ein, die der Container verwenden kann.

      1. Geben Sie für **Swappiness** einen Wert zwischen 0 und 100 ein, um das Swappiness-Verhalten des Containers anzugeben. Wenn Sie keinen Wert angeben und Swapping aktiviert ist, ist der Standardwert 60. 

      1. Wählen Sie für **Geräte** die Option **Gerät hinzufügen** aus, um ein Gerät hinzuzufügen:

         1. 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 Sie dieses Feld leer lassen, wird der Hostpfad im Container verwendet.

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

         1. Wählen Sie **unter Berechtigungen** eine oder mehrere Berechtigungen aus, die auf das Gerät angewendet werden sollen. Die verfügbaren Berechtigungen sind **READ**, **WRITE** und **MKNOD**.

      1. Wählen Sie für **Tmpfs** Add **tmpfs aus, um einen Mount hinzuzufügen**. `tmpfs`

   1. 
**Anmerkung**  
Die Protokollierung von Firelens muss in einem speziellen Container erfolgen. Um die Firelens-Protokollierung zu konfigurieren:  
**Stellen Sie in jedem Container, mit Ausnahme Ihres dedizierten Firelens-Containers, den Logging-Treiber auf** `awsfirelens`
*Stellen Sie in Ihrem Firelens-Container die **Firelens-Konfiguration — optional und die Logging-Konfiguration — optional** auf das **Logging-Ziel** ein*

      Gehen Sie im Abschnitt **Firelens-Konfiguration** — optional wie folgt vor:
**Wichtig**  
AWS Batch erzwingt den `host` Netzwerkmodus für Amazon ECS-Jobs, die nicht MNP oder Fargate sind. Für Amazon ECS [Firelens ist ein Root-Benutzer erforderlich](https://github.com/aws/aws-for-fluent-bit/blob/mainline/troubleshooting/debugging.md#amazon-ecs-firelens-root-is-required). Bei der Ausführung von Aufgaben, die den `host` Netzwerkmodus verwenden, rät Amazon ECS aus [Sicherheitsgründen](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#network_mode) davon ab, Container mit dem Root-Benutzer (UID 0) auszuführen. Daher entsprechen alle ECS-Jobs, die nicht MNP oder Fargate sind, mit Firelens-Protokollierung nicht den bewährten Sicherheitsmethoden.

      1. **Wählen Sie als Typ entweder oder.** `fluentd` `fluentbit` 

      1. Geben Sie für **Optionen** das name/value Optionspaar ein. Mit der **Option „Hinzugefügt**“ können Sie weitere **Optionen** hinzufügen.

   1.  Gehen **Sie im Abschnitt Konfiguration der Protokollierung — *optional*** wie folgt vor:

      1. Wählen **Sie unter Protokolltreiber** den Protokolltreiber aus, den Sie verwenden möchten. [Weitere Informationen zu den verfügbaren Protokolltreibern finden Sie unter:LogDriverLogConfiguration.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-logDriver)
**Anmerkung**  
Standardmäßig wird der `awslogs` Protokolltreiber verwendet.

      1. Wählen Sie **unter Optionen** die **Option Hinzufügen** aus, um eine Option hinzuzufügen. Geben Sie ein Name-Wert-Paar ein und wählen Sie dann Option **hinzufügen**.

      1. Wählen Sie für **Geheimnisse** die Option Geheimnis **hinzufügen** aus. Geben Sie ein Name-Wert-Paar ein und wählen Sie dann **Geheimnis hinzufügen aus, um ein Geheimnis** hinzuzufügen.
**Tipp**  
[Weitere Informationen finden Sie unter:Geheime Optionen. LogConfiguration](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

   1. Wählen Sie **unter Bereitstellungspunkte — *optional*** die Option Bereitstellungspunkte **hinzufügen aus, um Bereitstellungspunkte** für Datenvolumes hinzuzufügen. Sie müssen das Quellvolume und den Containerpfad angeben. 

   1. Wählen Sie für **Secrets — *optional*** die Option **Add secret** aus, um ein Secret hinzuzufügen. Geben Sie dann ein Name-Wert-Paar ein und wählen Sie Geheimnis **hinzufügen** aus.
**Tipp**  
[Weitere Informationen finden Sie unter:Geheime Optionen. LogConfiguration](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

   1. Wählen Sie für **Ulimits — *optional*** die Option **Add ulimit** aus, um einen Wert für den Container hinzuzufügen. `ulimits` Geben Sie die Werte **Name**, **Soft Limit** und **Hard Limit ein und wählen Sie dann **Add** ulimit** aus.

   1. Wählen **Sie für Abhängigkeiten — *optional*** die Option **Container-Abhängigkeiten hinzufügen** aus. Wählen Sie den Namen des Containers und seinen Status aus, um zu bestimmen, wann dieser Container gestartet wird.

1. Wenn Sie nur einen Container konfiguriert haben, müssen Sie **Container hinzufügen** auswählen und die Konfiguration des neuen Containers abschließen. Andernfalls wählen Sie **Weiter** zur Überprüfung aus. 