Erstellen einer Aufgabendefinition mit der klassischen Konsole - Amazon ECS

Erstellen einer Aufgabendefinition mit der klassischen Konsole

Wichtig

Amazon ECS bietet ein neues Konsolenerlebnis für die Erstellung von Aufgabendefinitionen. Weitere Informationen finden Sie unter Erstellen einer Aufgabendefinition mit der neuen Konsole.

Bevor Sie auf Amazon ECS Docker-Container ausführen, müssen Sie zuerst eine Aufgabendefinition erstellen. Wenn Sie eine Aufgabendefinition erstellen, können Sie damit mehrere Container und Daten-Volumes definieren. Weitere Informationen zu den verfügbaren Parametern für Aufgabendefinitionen finden Sie im Abschnitt Aufgabendefinitionsparameter.

So erstellen Sie eine neue Aufgabendefinition (klassische Amazon-ECS-Konsole)

  1. Öffnen Sie die Amazon ECS-Konsole unter https://console.aws.amazon.com/ecs/.

  2. Wählen Sie im Navigationsbereich Task Definitions (Aufgabendefinitionen) Create new Task Definition (Neue Aufgabendefinition erstellen).

  3. Wählen Sie auf der Seite Select launch type compatibilities (Kompatibilität des Starttyps auswählen) FARGATE und dann Next step (Nächster Schritt).

  4. (Optional) Wenn JSON-Darstellung Ihrer Aufgabendefinition vorhanden ist, führen Sie die folgenden Schritte aus:

    1. Scrollen Sie auf der Seite Configure task and container definitions nach unten und wählen Sie Configure via JSON aus.

    2. Fügen Sie die JSON-Darstellung Ihrer Aufgabendefinition in den Textbereich ein und wählen Sie Save (Speichern) aus.

    3. Überprüfen Sie Ihre Informationen und wählen Sie Erstellen.

    Scrollen Sie auf der Seite nach unten und wählen Sie Configure via JSON aus.

  5. Geben Sie unter Task Definition Name (Aufgabendefinitionsname)‭ einen Namen für Ihre Aufgabendefinition ein. Bis zu 255 Buchstaben (Groß- und Kleinbuchstaben), Ziffern, Bindestriche und Unterstriche sind zulässig.

  6. Wählen Sie für Operating system family (Betriebssystemfamilie) das Container-Betriebssystem aus.

  7. Wählen Sie für Task execution IAM role (IAM-Aufgabenausführungsrolle) entweder Ihre Aufgabenausführungsrolle aus oder wählen Sie Create new role (Neue Rolle erstellen), so dass die Konsole eine Rolle für Sie erstellen kann. Weitere Informationen finden Sie unter IAM-Rolle für die Amazon ECS-Aufgabenausführung.

  8. Wählen Sie unter Task size einen Wert für Task memory (GB) und Task CPU (vCPU) aus. Die folgende Tabelle enthält die gültigen Kombinationen.

    CPU-Wert Speicherwert Für Fargate unterstützte Betriebssysteme
    256 (0,25 vCPU) 512 MiB, 1 GB, 2 GB Linux
    512 (0,5 vCPU) 1 GB, 2 GB, 3 GB, 4 GB Linux
    1024 (1 vCPU) 2 GB, 3 GB, 4 GB, 5 GB, 6 GB, 7 GB, 8 GB Linux, Windows
    2048 (2 vCPU) Zwischen 4 GB und 16 GB in 1-GB-Schritten Linux, Windows
    4096 (4 vCPU) Zwischen 8 GB und 30 GB in 1-GB-Schritten Linux, Windows
  9. Führen Sie für jeden Container in Ihrer Aufgabendefinition die folgenden Schritte aus:

    1. Wählen Sie Add container aus.

    2. Füllen Sie jedes Pflichtfeld und beliebige optionale Felder aus, die Sie in Ihren Containerdefinitionen verwenden möchten. Weitere Containerdefinitionsparameter sind im Menü Advanced container configuration (Erweiterte Containerkonfiguration) verfügbar. Weitere Informationen finden Sie unter Aufgabendefinitionsparameter.

    3. Wählen Sie Add aus, um Ihren Container zur Aufgabendefinition hinzuzufügen.

  10. Wählen Sie unter Service Integration (Service-Integration) zur Konfiguration der Parameter für die App Mesh-Integration Enable App Mesh integration (App Mesh-Integration aktivieren) aus und gehen Sie dann wie folgt vor:

    1. Wählen Sie unter Mesh name (Mesh-Name) das zu verwendende App Mesh-Service-Mesh aus. Wenn Ihnen keine Meshes angezeigt werden, müssen Sie eines erstellen. Weitere Informationen finden Sie unter Service meshes im AWS App Mesh-Benutzerhandbuch.

      Anmerkung

      Für Windows-Container auf Fargate ist diese Option nicht verfügbar.

    2. Geben Sie für App Mesh endpoint (App Mesh-Endpunkt) eine der folgenden Optionen ein:

      • Virtueller Knoten – Geben Sie die folgenden Informationen ein:

        • Wählen Sie unter Application container name (Anwendungs-Container-Name) den Container-Namen aus, der für die App Mesh-Integration verwendet werden soll. Dieser Container muss innerhalb der Aufgabendefinition bereits definiert sein.

        • Wählen Sie unter Virtual node name (Name des virtuellen Knotens) den zu bestehenden virtuellen App Mesh-Knoten aus. Wenn Ihnen keine virtuellen Knoten angezeigt werden, müssen Sie zuerst einen erstellen. Weitere Informationen finden Sie unter Virtuelle Knoten im AWS App Mesh-Benutzerhandbuch.

        • Virtual node port (Port des virtuellen Knotens) – mit dem Listener-Port gefüllt, der auf dem virtuellen Knoten in App Mesh eingestellt wurde.

      • Virtuelles Gateway – Geben Sie die folgenden Informationen ein oder wählen Sie diese aus:

        • Wählen Sie für den Virtuellen Gateway-Namen das vorhandenen virtuelle App Mesh Gateway aus, das verwendet werden soll. Wenn Ihnen keine virtuellen Gateways angezeigt werden, müssen Sie zuerst eines erstellen. Weitere Informationen finden Sie unter Virtuelles Gateway im AWS App Mesh-Benutzerhandbuch.

        • Für Virtuelles Gateway – Wird mit dem Listener-Port gefüllt, der auf dem virtuellen Gateway in App Mesh eingestellt wurde.

    3. Für Envoy-Bild, geben Sie 840364872350.dkr.ecr.us-west-2.amazonaws.com/aws-appmesh-envoy:v1.15.1.0-prod für alle Regionen außer me-south-1 und ap-east-1 ein. Sie können us-west-2 mit einer beliebigen Region außer me-south-1 und ap-east-1 ersetzen. Wenn sich Ihre Anwendung in einer dieser Regionen befindet, müssen Sie auch 840364872350 mit dem entsprechenden Wert für Ihre Region ersetzen. Weitere Informationen finden Sie unter Envoy Image im AWS App Mesh-Benutzerhandbuch.

    4. Wählen Sie Apply (Anwenden) und dann Confirm (Bestätigen). Dadurch wird ein neuer Envy-Proxy-Container für die Aufgabendefinition und die Einstellungen zu ihrer Unterstützung hinzugefügt. Wenn Sie die Option Virtueller Knoten gewählt haben, wird auch das App Mesh Proxy-Konfiguration-Einstellungen für den nächsten Schritt automatisch aufgefüllt. Wenn Sie die Option Virtuelles Gateway gewählt haben, dann ist die Proxy-Konfiguration deaktiviert, da sie nicht für ein virtuelles Gateway verwendet wird.

  11. (Optional) Wenn Sie Virtueller Knoten in Service-Integration und dann für Proxy-Konfiguration gewählt haben, überprüfen Sie alle vorausgefüllten Werte. Weitere Informationen zu diesen Feldern finden Sie unter der JSON-Registerkarte unter Services aktualisieren.

  12. (Optional) Für Integration von Log-Routern können Sie eine benutzerdefinierte Protokollroutingkonfiguration hinzufügen. Klicken Sie auf Aktivieren von FireLens-Integration und gehen Sie wie folgt vor:

    Anmerkung

    Für Windows-Container auf Fargate ist diese Option nicht verfügbar.

    1. Für Typ wählen Sie den zu verwendenden Protokoll-Router-Typ aus.

    2. Für Image, geben Sie den Image-URI für Ihren Log-Router-Container ein. Wenn Sie den fluentbit-Protokoll-Router-Typ auswählen, wird das Image-Feld mit dem AWS für Fluent Bit Image vorab ausgefüllt. Weitere Informationen finden Sie unter Verwendung des AWS-for-Fluent Bit-Images.

    3. Wählen Sie Apply (Anwenden) aus. Dadurch wird ein neuer Protokoll-Router-Container für die Aufgabendefinition namens log_router erstellt und die Einstellungen zu seiner Unterstützung werden angewendet. Wenn Sie Änderungen an den Log-Router-Integrationsfeldern vornehmen, wählen Sie Anwenden, um den FireLens Container zu aktualisieren.

  13. (Optional) Um Datenvolumes für Ihre Aufgabe zu definieren, wählen Sie Add volume aus. Weitere Informationen finden Sie unter Verwendung von Daten-Volumes in Aufgaben.

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

  14. Im Abschnitt Tags geben Sie den Schlüssel und den Wert für jedes Tag an, das der Aufgabendefinition zugeordnet werden soll. Weitere Informationen finden Sie unter Markieren Ihrer Amazon ECS-Ressourcen.

  15. Wählen Sie Create (Erstellen) aus.

Aufgabendefinitionsvorlage

Nachfolgend wird eine leere Aufgabendefinitionsvorlage gezeigt. Mit dieser Vorlage können Sie Ihre Aufgabendefinition erstellen, die dann in den JSON-Eingabebereich der Konsole eingefügt oder in einer Datei gespeichert und mit der AWS CLI-Option --cli-input-json verwendet werden kann. Weitere Informationen finden Sie unter Aufgabendefinitionsparameter.

Wichtig

Sie müssen den operatingSystemFamily-Parameter mit einem der folgenden Werte einbeziehen:

  • LINUX

  • WINDOWS_SERVER_2019_FULL

  • WINDOWS_SERVER_2019_CORE

{ "family": "", "runtimePlatform": { "operatingSystemFamily": "" }, "taskRoleArn": "", "executionRoleArn": "", "networkMode": "awsvpc", "platformFamily": "", "containerDefinitions": [ { "name": "", "image": "", "repositoryCredentials": {"credentialsParameter": ""}, "cpu": 0, "memory": 0, "memoryReservation": 0, "links": [""], "portMappings": [ { "containerPort": 0, "hostPort": 0, "protocol": "tcp" } ], "essential": true, "entryPoint": [""], "command": [""], "environment": [ { "name": "", "value": "" } ], "environmentFiles": [ { "value": "", "type": "s3" } ], "mountPoints": [ { "sourceVolume": "", "containerPath": "", "readOnly": true } ], "volumesFrom": [ { "sourceContainer": "", "readOnly": true } ], "linuxParameters": { "capabilities": { "add": [""], "drop": [""] }, "devices": [ { "hostPath": "", "containerPath": "", "permissions": ["read"] } ], "initProcessEnabled": true, "sharedMemorySize": 0, "tmpfs": [ { "containerPath": "", "size": 0, "mountOptions": [""] } ], "maxSwap": 0, "swappiness": 0 }, "secrets": [ { "name": "", "valueFrom": "" } ], "dependsOn": [ { "containerName": "", "condition": "HEALTHY" } ], "startTimeout": 0, "stopTimeout": 0, "hostname": "", "user": "", "workingDirectory": "", "disableNetworking": true, "privileged": true, "readonlyRootFilesystem": true, "dnsServers": [""], "dnsSearchDomains": [""], "extraHosts": [ { "hostname": "", "ipAddress": "" } ], "dockerSecurityOptions": [""], "interactive": true, "pseudoTerminal": true, "dockerLabels": {"KeyName": ""}, "ulimits": [ { "name": "msgqueue", "softLimit": 0, "hardLimit": 0 } ], "logConfiguration": { "logDriver": "awslogs", "options": {"KeyName": ""}, "secretOptions": [ { "name": "", "valueFrom": "" } ] }, "healthCheck": { "command": [""], "interval": 0, "timeout": 0, "retries": 0, "startPeriod": 0 }, "systemControls": [ { "namespace": "", "value": "" } ], "resourceRequirements": [ { "value": "", "type": "GPU" } ], "firelensConfiguration": { "type": "fluentd", "options": {"KeyName": ""} } } ], "volumes": [ { "name": "", "host": {"sourcePath": ""}, "dockerVolumeConfiguration": { "scope": "task", "autoprovision": true, "driver": "", "driverOpts": {"KeyName": ""}, "labels": {"KeyName": ""} }, "efsVolumeConfiguration": { "fileSystemId": "", "rootDirectory": "", "transitEncryption": "ENABLED", "transitEncryptionPort": 0, "authorizationConfig": { "accessPointId": "", "iam": "ENABLED" } } } ], "placementConstraints": [ { "type": "memberOf", "expression": "" } ], "requiresCompatibilities": ["FARGATE"], "cpu": "", "memory": "", "tags": [ { "key": "", "value": "" } ], "ephemeralStorage": { "sizeInGiB": 0 }, "pidMode": "task", "ipcMode": "none", "proxyConfiguration": { "type": "APPMESH", "containerName": "", "properties": [ { "name": "", "value": "" } ] }, "inferenceAccelerators": [ { "deviceName": "", "deviceType": "" } ] }

Sie können diese Aufgabendefinitionsvorlage mit dem folgenden AWS CLI-Befehl generieren.

aws ecs register-task-definition --generate-cli-skeleton