View a markdown version of this page

Erstellen Sie eine Auftragsdefinition auf Amazon ECS Managed Instances - 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.

Erstellen Sie eine Auftragsdefinition auf Amazon ECS Managed Instances

Die Jobdefinitionen von Amazon ECS Managed Instances werden ecsProperties zusammen mit der MANAGED_INSTANCES Plattformfunktion verwendet. Im Gegensatz zu Fargate gibt es keine Einschränkungen für Kombinationen von vCPU- und Speichergröße, und GPU-Ressourcen werden unterstützt. Weitere Hinweise zu unterstützten Parametern finden Sie unter. Auftragsdefinitionen auf von Amazon ECS verwalteten Instances

Erstellen einer Auftragsdefinition auf Amazon ECS Managed Instances (Konsole)

So erstellen Sie eine neue Jobdefinition auf Amazon ECS Managed Instances:
  1. Öffnen Sie die AWS Batch Konsole unter https://console.aws.amazon.com/batch/.

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

  3. Wählen Sie im linken Navigationsbereich die Option Jobdefinitionen aus.

  4. Wählen Sie Erstellen aus.

  5. Wählen Sie als Orchestrierungstyp ECS Managed Instances aus.

  6. 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.

  7. (Optional) Geben Sie für das Ausführungstimeout den Timeout-Wert (in Sekunden) ein. Der Ausführungs-Timeout gibt an, wie lange es dauert, bis ein noch nicht abgeschlossener Job beendet wird. Wenn ein Versuch die Timeout-Dauer überschreitet, wird der Versuch gestoppt und geht in einen Status über. FAILED Weitere Informationen finden Sie unter Zeitüberschreitungen bei Aufträgen. Der Mindestwert beträgt 60 Sekunden.

  8. Wählen Sie für die Ausführungsrolle eine IAM-Rolle aus, die dem Amazon ECS-Container-Agenten die Erlaubnis erteilt, AWS API-Aufrufe in Ihrem Namen durchzuführen. Diese Rolle ist für Amazon ECS Managed Instances-Jobs erforderlich. Die Rolle wird beispielsweise verwendet, um Container-Images aus Amazon ECR abzurufen.

  9. Im Abschnitt Container-Konfiguration:

    1. Geben Sie für Image das Container-Image ein, das für den Job verwendet werden soll. Bilder in Amazon ECR-Registern können mit der repository-url/image:tag Namenskonvention angegeben werden. Bilder in öffentlichen Registern verwenden den vollständigen URI (z. B.). public.ecr.aws/amazonlinux/amazonlinux:2023

    2. Geben Sie unter Command den Befehl ein, der an den Container übergeben werden soll.

    3. Geben Sie für vCPUs die Anzahl von vCPUs ein, die für den Container reserviert werden sollen.

    4. Geben Sie für Speicher das Speicherlimit (in MiB) an, das dem Container zur Verfügung steht.

    5. (Optional) Geben Sie für GPUs die Anzahl der GPU-Geräte an, die dem Container zur Verfügung gestellt werden sollen. In der Rechenumgebung müssen GPU-Instances verfügbar sein.

  10. (Optional) Erweitern Sie Tags und wählen Sie dann Tag hinzufügen, um der Ressource Tags hinzuzufügen. Aktivieren Sie „Tags weitergeben“, um Stichwörter aus dem Job und der Auftragsdefinition zu übertragen.

  11. Wählen Sie Auftragsdefinition erstellen aus.

Erstellen einer Auftragsdefinition auf Amazon ECS Managed Instances (AWS CLI)

Verwenden Sie den register-job-definition Befehl, um eine Auftragsdefinition für Amazon ECS Managed Instances zu erstellen.

Einfaches Beispiel

Im folgenden Beispiel wird eine minimale Auftragsdefinition erstellt, die einen einfachen Befehl ausführt.

$ aws batch register-job-definition \ --job-definition-name my-managed-instances-job-def \ --type container \ --platform-capabilities MANAGED_INSTANCES \ --ecs-properties '{ "taskProperties": [{ "containers": [{ "image": "public.ecr.aws/amazonlinux/amazonlinux:2023", "name": "main", "command": ["echo", "hello managed instances"], "resourceRequirements": [ {"type": "VCPU", "value": "1"}, {"type": "MEMORY", "value": "1024"} ] }], "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole" }] }'

GPU-Auftragsdefinition

Im folgenden Beispiel wird eine Auftragsdefinition erstellt, die GPU-Ressourcen anfordert.

$ aws batch register-job-definition \ --job-definition-name my-gpu-managed-instances-job-def \ --type container \ --platform-capabilities MANAGED_INSTANCES \ --ecs-properties '{ "taskProperties": [{ "containers": [{ "image": "123456789012.dkr.ecr.us-east-1.amazonaws.com/my-gpu-image:latest", "name": "main", "command": ["nvidia-smi"], "resourceRequirements": [ {"type": "VCPU", "value": "4"}, {"type": "MEMORY", "value": "16384"}, {"type": "GPU", "value": "1"} ] }], "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole" }] }'

Multi-container Jobdefinition (Beiwagen)

Im folgenden Beispiel wird eine Auftragsdefinition mit einem Hauptcontainer und einem Sidecar-Logging-Container erstellt.

$ aws batch register-job-definition \ --job-definition-name my-sidecar-managed-instances-job-def \ --type container \ --platform-capabilities MANAGED_INSTANCES \ --ecs-properties '{ "taskProperties": [{ "containers": [{ "image": "public.ecr.aws/amazonlinux/amazonlinux:2023", "name": "main", "command": ["echo", "processing data"], "essential": true, "resourceRequirements": [ {"type": "VCPU", "value": "2"}, {"type": "MEMORY", "value": "4096"} ] }, { "image": "public.ecr.aws/amazonlinux/amazonlinux:2023", "name": "sidecar", "command": ["echo", "logging sidecar"], "essential": false, "resourceRequirements": [ {"type": "VCPU", "value": "1"}, {"type": "MEMORY", "value": "512"} ] }], "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole" }] }'