Erstellen einer Aufgabendefinition - Amazon Elastic Container Service

Erstellen einer Aufgabendefinition

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

So erstellen Sie eine neue Aufgabendefinition

  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 compatibilities den Starttyp, den Ihre Aufgabe verwenden soll, und wählen Sie Next step.

    Anmerkung

    Der Fargate-Starttyp ist nicht mit Windows-Containern kompatibel.

  4. Befolgen Sie die Schritte unter einem der folgenden Registerkarten entsprechend dem Starttyp, den Sie ausgewählt haben.

Fargate launch type

Verwenden der Kompatibilitätsvorlage des Starttyps Fargate

Wenn Sie Fargate ausgewählt haben, führen Sie die folgenden Schritte aus:

  1. (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 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.

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

  3. (Optional) Wählen Sie unter Task Role (Aufgabenrolle) eine IAM-Rolle aus, die Container in Ihrer Aufgabe dazu berechtigt, in Ihrem Auftrag Aufrufe an AWS-API-Betriebe zu senden. Weitere Informationen finden Sie unter IAM-Rollen für Aufgaben.

    Anmerkung

    Hier werden nur Rollen mit der Vertrauensstellung Amazon EC2 Container Service Task Role angezeigt. Weitere Informationen zum Erstellen einer IAM-Rolle für Ihre Aufgaben finden Sie unter Erstellen einer IAM-Rolle und -Richtlinie für Ihre Aufgaben.

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

  5. 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
    256 (0,25 vCPU) 512 MB, 1 GB, 2 GB
    512 (0,5 vCPU) 1 GB, 2 GB, 3 GB, 4 GB
    1024 (1 vCPU) 2 GB, 3 GB, 4 GB, 5 GB, 6 GB, 7 GB, 8 GB
    2048 (2 vCPU) Zwischen 4 GB und 16 GB in 1-GB-Schritten
    4096 (4 vCPU) Zwischen 8 GB und 30 GB in 1-GB-Schritten
  6. 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.

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

    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.

  8. (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.

  9. (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:

    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 die Option 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 Verwenden des AWS für Fluent Bit-Image.

    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.

  10. (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.

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

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

EC2 launch type

Verwenden der Kompatibilitätsvorlage des Starttyps EC2

Wenn Sie EC2 ausgewählt haben, führen Sie die folgenden Schritte aus:

  1. (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 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.

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

  3. (Optional) Wählen Sie unter Task Role (Aufgabenrolle) eine IAM-Rolle aus, die Container in Ihrer Aufgabe dazu berechtigt, in Ihrem Auftrag Aufrufe an AWS-APIs zu senden. Weitere Informationen finden Sie unter IAM-Rollen für Aufgaben.

    Für Aufgaben, die den Starttyp EC2 verwenden, werden diese Berechtigungen in der Regel von der Amazon ECS-Container-Instance-IAM-Rolle erteilt. Weitere Informationen finden Sie unter IAM-Rolle für Amazon ECS-Container-Instance.

    Anmerkung

    Hier werden nur Rollen mit der Vertrauensstellung Amazon EC2 Container Service Task Role angezeigt. Weitere Informationen zum Erstellen einer IAM-Rolle für Ihre Aufgaben finden Sie unter Erstellen einer IAM-Rolle und -Richtlinie für Ihre Aufgaben.

  4. (Optional) Wählen Sie unter Network Mode den Docker-Netzwerkmodus aus, der für die Container in Ihrer Aufgabe verwendet werden soll. Die verfügbaren Netzwerkmodi entsprechen denen unter Netzwerkeinstellungen in der Referenz Docker ausführen. Wenn Sie Enable App Mesh integration (App Mesh-Integration aktivieren) in einem nachfolgenden Schritt auswählen, müssen Sie awsvpc auswählen.

    Der Docker-Standardnetzwerkmodus lautet bridge. Wenn der Netzwerkmodus auf none festgelegt ist, können Sie keine Port-Zuweisungen in Ihren Containerdefinitionen angeben und die Container der Aufgabe verfügen über keine externe Konnektivität. Wenn der Netzwerk-Modus awsvpc ist, wird die Aufgabe einer Elastic-Network-Schnittstelle zugeordnet. Die host- und awsvpc-Netzwerkmodi bieten die höchste Netzwerkleistung für Container. Der Grund hierfür ist, dass sie den Amazon EC2 Netzwerk-Stack anstelle des virtualisierten Netzwerk-Stacks vom bridge-Modus verwenden. Freigegebene Container-Ports werden jedoch direkt dem entsprechenden Host-Port zugeordnet. Daher können Sie die dynamischen Host-Port-Mappings nicht ausnützen oder nicht mehrere Instanziierungen derselben Aufgabe auf einer einzelnen Container-Instance ausführen, wenn Port-Mappings verwendet werden.

  5. (Optional) Wählen Sie unter Task execution role (Aufgabenausführungsrolle) eine IAM-Rolle aus, die Berechtigungen für Container in Ihrer Aufgabe bereitstellt, in Ihrem Auftrag Aufrufe an AWS-APIs zu senden.

    Für Aufgaben, die den Starttyp EC2 verwenden, werden diese Berechtigungen in der Regel von der Amazon ECS-Container-Instance-IAM-Rolle gewährt, die früher als Task Role (Aufgabenrolle) angegeben wurde. Es ist nicht erforderlich, eine Rolle zur Aufgabenausführung anzugeben. Weitere Informationen finden Sie unterIAM-Rolle für die Amazon ECS-Aufgabenausführung.

  6. (Optional) Wählen Sie unter Task size einen Wert für Task memory (GB) und Task CPU (vCPU) aus. Unterstützte Task CPU (vCPU)-Werte liegen zwischen 128 CPU-Einheiten (0,125 vCPUs) und 10240 CPU-Einheiten (10 vCPUs).

    Anmerkung

    CPU- und Speicherparameter auf Aufgabenebene werden für Windows-Container ignoriert. Es wird empfohlen, für Windows-Container Ressourcen auf Container-Ebene festzulegen.

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

  8. (Optional) Für Constraint definieren Sie, wie Aufgaben, die aus dieser Aufgabendefinition erstellt werden, in Ihrem Cluster platziert werden. Für Aufgaben, die den Starttyp EC2 verwenden, können Sie Einschränkungen festlegen, um Tasks basierend auf Availability Zone, Instance-Typ oder benutzerdefinierten Attributen zu platzieren. Weitere Informationen finden Sie unter Amazon ECS-Aufgabenplatzierungseinschränkungen.

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

    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.

  10. (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.

  11. (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:

    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 die Option 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 Verwenden des AWS für Fluent Bit-Image.

    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.

  12. (Optional) Um Datenvolumes für Ihre Aufgabe zu definieren, wählen Sie Add volume aus. Sie können entweder ein Bind-Mount oder Docker-Volume erstellen. 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.

    2. (Optional) Geben Sie den Pfad auf der Host-Container-Instance ein, der dem Container angezeigt werden soll, um ein Bind-Mount-Volume für Source path (Quellpfad) zu erstellen. Wenn Sie dieses Feld leer lassen, weist der Docker-Daemon einen Host-Pfad für Sie zu. Wenn Sie einen Quellpfad angeben, bleibt das Datenvolume 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. Wählen Sie Specify a volume driver (Einen Volume-Treiber angeben) aus, um ein Docker-Volume zu erstellen.

      1. Wählen Sie für Driver (Treiber) den Docker-Volume-Treiber aus, der verwendet werden soll. Der Treiberwert muss mit dem Treibernamen von Docker übereinstimmen. Verwenden Sie docker plugin ls auf Ihrer Container-Instance zum Abrufen des Treibernamens.

      2. Wählen Sie für Scope (Geltungsbereich) die Option aus, die den Lebenszyklus des Docker-Volumes bestimmt. Docker-Volumes, die auf eine task beschränkt sind, werden automatisch beim Starten der Aufgabe bereitgestellt und beim Stoppen dieser vernichtet. Docker-Volumes, die als shared angewendet werden, bleiben erhalten, nachdem die Aufgabe gestoppt wird.

      3. Wählen Sie Enable auto-provisioning (Automatische Bereitstellung aktivieren) aus, damit das Docker-Volume erstellt wird, sofern es nicht bereits vorhanden ist. Diese Option ist nur für Volumes verfügbar, die den shared-Bereich angeben.

      4. Geben Sie für Driver options (Treiberoptionen) die zu verwendenden Treiber-spezifischen Schlüsselwerte an.

      5. Geben Sie für die Volume labels (Volume-Kennzeichnung) die benutzerdefinierten Metadaten an, die Ihrem Docker-Volume hinzugefügt werden sollen.

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

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

External instance launch type

Verwenden des Starttyps der externen Instance

Wenn Sie External (Extern), ausgewählt haben, führen Sie die folgenden Schritte aus:

  1. (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 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.

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

  3. (Optional) Wählen Sie unter Task Role (Aufgabenrolle) eine IAM-Rolle aus, die Container in Ihrer Aufgabe dazu berechtigt, in Ihrem Auftrag Aufrufe an AWS-APIs zu senden. Weitere Informationen erhalten Sie unter IAM-Rollen für Aufgaben und IAM-Berechtigungen für Amazon ECS Anywhere.

  4. (Optional) Wählen Sie unter Network Mode den Docker-Netzwerkmodus aus, der für die Container in Ihrer Aufgabe verwendet werden soll. Die verfügbaren Netzwerkmodi entsprechen denen unter Netzwerkeinstellungen in der Referenz Docker ausführen.

    Der Docker-Standardnetzwerkmodus lautet bridge. Wenn der Netzwerkmodus auf none festgelegt ist, können Sie keine Port-Zuweisungen in Ihren Containerdefinitionen angeben und die Container der Aufgabe verfügen über keine externe Konnektivität. Wenn der Netzwerk-Modus awsvpc ist, wird die Aufgabe einer Elastic-Network-Schnittstelle zugeordnet. Die host- und awsvpc-Netzwerkmodi bieten die höchste Netzwerkleistung für Container. Der Grund hierfür ist, dass sie den Amazon EC2 Netzwerk-Stack anstelle des virtualisierten Netzwerk-Stacks vom bridge-Modus verwenden. Freigegebene Container-Ports werden jedoch direkt dem entsprechenden Host-Port zugeordnet. Daher können Sie die dynamischen Host-Port-Mappings nicht ausnützen oder nicht mehrere Instanziierungen derselben Aufgabe auf einer einzelnen Container-Instance ausführen, wenn Port-Mappings verwendet werden.

  5. (Optional) Wählen Sie unter Task execution role (Aufgabenausführungsrolle) eine IAM-Rolle aus, die Berechtigungen für Container in Ihrer Aufgabe bereitstellt, in Ihrem Auftrag Aufrufe an AWS-APIs zu senden.

  6. (Optional) Wählen Sie unter Task size einen Wert für Task memory (GB) und Task CPU (vCPU) aus. Unterstützte Task CPU (vCPU)-Werte liegen zwischen 128 CPU-Einheiten (0,125 vCPUs) und 10240 CPU-Einheiten (10 vCPUs).

    Anmerkung

    CPU- und Speicherparameter auf Aufgabenebene werden für Windows-Container ignoriert. Es wird empfohlen, für Windows-Container Ressourcen auf Container-Ebene festzulegen.

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

  8. (Optional) Für Constraint definieren Sie, wie Aufgaben, die aus dieser Aufgabendefinition erstellt werden, in Ihrem Cluster platziert werden. Weitere Informationen finden Sie unter Amazon ECS-Aufgabenplatzierungseinschränkungen.

  9. (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:

    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 die Option 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 Verwenden des AWS für Fluent Bit-Image.

    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.

  10. (Optional) Um Datenvolumes für Ihre Aufgabe zu definieren, wählen Sie Add volume aus. Sie können entweder ein Bind-Mount oder Docker-Volume erstellen. 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.

    2. (Optional) Geben Sie den Pfad auf der Host-Container-Instance ein, der dem Container angezeigt werden soll, um ein Bind-Mount-Volume für Source path (Quellpfad) zu erstellen. Wenn Sie dieses Feld leer lassen, weist der Docker-Daemon einen Host-Pfad für Sie zu. Wenn Sie einen Quellpfad angeben, bleibt das Datenvolume 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. Wählen Sie Specify a volume driver (Einen Volume-Treiber angeben) aus, um ein Docker-Volume zu erstellen.

      1. Wählen Sie für Driver (Treiber) den Docker-Volume-Treiber aus, der verwendet werden soll. Der Treiberwert muss mit dem Treibernamen von Docker übereinstimmen. Verwenden Sie docker plugin ls auf Ihrer Container-Instance zum Abrufen des Treibernamens.

      2. Wählen Sie für Scope (Geltungsbereich) die Option aus, die den Lebenszyklus des Docker-Volumes bestimmt. Docker-Volumes, die auf eine task beschränkt sind, werden automatisch beim Starten der Aufgabe bereitgestellt und beim Stoppen dieser vernichtet. Docker-Volumes, die als shared angewendet werden, bleiben erhalten, nachdem die Aufgabe gestoppt wird.

      3. Wählen Sie Enable auto-provisioning (Automatische Bereitstellung aktivieren) aus, damit das Docker-Volume erstellt wird, sofern es nicht bereits vorhanden ist. Diese Option ist nur für Volumes verfügbar, die den shared-Bereich angeben.

      4. Geben Sie für Driver options (Treiberoptionen) die zu verwendenden Treiber-spezifischen Schlüsselwerte an.

      5. Geben Sie für die Volume labels (Volume-Kennzeichnung) die benutzerdefinierten Metadaten an, die Ihrem Docker-Volume hinzugefügt werden sollen.

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

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

{ "family": "", "taskRoleArn": "", "executionRoleArn": "", "networkMode": "bridge", "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": "START" } ], "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": "memlock", "softLimit": 0, "hardLimit": 0 } ], "logConfiguration": { "logDriver": "splunk", "options": { "KeyName": "" }, "secretOptions": [ { "name": "", "valueFrom": "" } ] }, "healthCheck": { "command": [ "" ], "interval": 0, "timeout": 0, "retries": 0, "startPeriod": 0 }, "systemControls": [ { "namespace": "", "value": "" } ], "resourceRequirements": [ { "value": "", "type": "InferenceAccelerator" } ], "firelensConfiguration": { "type": "fluentbit", "options": { "KeyName": "" } } } ], "volumes": [ { "name": "", "host": { "sourcePath": "" }, "dockerVolumeConfiguration": { "scope": "shared", "autoprovision": true, "driver": "", "driverOpts": { "KeyName": "" }, "labels": { "KeyName": "" } }, "efsVolumeConfiguration": { "fileSystemId": "", "rootDirectory": "", "transitEncryption": "DISABLED", "transitEncryptionPort": 0, "authorizationConfig": { "accessPointId": "", "iam": "DISABLED" } } } ], "placementConstraints": [ { "type": "memberOf", "expression": "" } ], "requiresCompatibilities": [ "FARGATE" ], "cpu": "", "memory": "", "tags": [ { "key": "", "value": "" } ], "pidMode": "host", "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