Amazon ECS-Aufgabendefinitionsparameter für den Fargate-Starttyp - Amazon Elastic Container Service

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.

Amazon ECS-Aufgabendefinitionsparameter für den Fargate-Starttyp

Aufgabendefinitionen sind in verschiedene Teile unterteilt: die Aufgabenfamilie, die AWS Identity and Access Management (IAM-) Aufgabenrolle, den Netzwerkmodus, Containerdefinitionen, Volumes und Starttypen. Die Familien- und Container-Definitionen sind in einer Aufgabendefinition obligatorisch. Im Gegensatz dazu sind Aufgabenrolle, Netzwerkmodus, Volumes und Starttyp optional.

Sie können diese Parameter in einer JSON-Datei verwenden, um Ihre Aufgabendefinition zu konfigurieren.

Im Folgenden finden Sie detailliertere Beschreibungen der einzelnen Aufgabendefinitionsparameter für den Fargate-Starttyp.

Familie

family

Typ: Zeichenfolge

Erforderlich: Ja

Wenn Sie eine Aufgabendefinition registrieren, vergeben Sie eine Familie, ähnlich einem Namen für mehrere Versionen der Aufgabendefinition, die mit einer Revisionsnummer angegeben ist. Die erste Aufgabendefinition, die in einer bestimmten Familie registriert wird, erhält die Revision 1 und alle danach registrierten Definitionen erhalten eine sequenzielle Revisionsnummer.

Starttypen

Wenn Sie eine Aufgabendefinition registrieren, können Sie einen Starttyp angeben, an dem Amazon ECS die Aufgabendefinition überprüfen soll. Eine Client-Ausnahme wird zurückgegeben, wenn die Aufgabendefinition nicht anhand der angegebenen Kompatibilitäten validiert. Weitere Informationen finden Sie unter Amazon-ECS-Starttypen.

Der folgende Parameter ist in einer Aufgabendefinition zulässig.

requiresCompatibilities

Typ: Zeichenfolgen-Array

Erforderlich: Nein

Zulässige Werte: FARGATE

Der Starttyp, der die Aufgabendefinition validiert. Dadurch kann überprüft werden, ob alle in der Aufgabendefinition verwendeten Parameter den Anforderungen des Starttyps entsprechen.

Aufgabenrolle

taskRoleArn

Typ: Zeichenfolge

Erforderlich: Nein

Wenn Sie eine Aufgabendefinition registrieren, können Sie eine Aufgabenrolle für eine IAM-Rolle angeben, die es den Containern in der Aufgabenberechtigung ermöglicht AWS APIs , die in den zugehörigen Richtlinien angegebenen Aufgaben in Ihrem Namen aufzurufen. Weitere Informationen finden Sie unter IAM-Rolle für Amazon ECS-Aufgaben.

Aufgabenausführungsrolle

executionRoleArn

Typ: Zeichenfolge

Required: Conditional

Der Amazon-Ressourcenname (ARN) der Aufgabenausführungsrolle, die dem Amazon ECS-Container-Agenten die Erlaubnis erteilt, AWS API-Aufrufe in Ihrem Namen durchzuführen.

Anmerkung

Die IAM-Rolle für die Aufgabenausführung ist je nach den Anforderungen Ihrer Aufgabe erforderlich. Weitere Informationen finden Sie unter IAM-Rolle für die Amazon-ECS-Aufgabenausführung.

Netzwerkmodus

networkMode

Typ: Zeichenfolge

Erforderlich: Ja

Der Docker-Netzwerkmodus, der für die Container in der Aufgabe verwendet werden soll. Für Amazon ECS-Aufgaben, die auf Fargate gehostet werden, ist der awsvpc Netzwerkmodus erforderlich.

Wenn der Netzwerkmodus auf none festgelegt ist, verfügen die Container der Aufgabe über keine externe Konnektivität und Port-Zuweisungen können nicht in der Container-Definition angegeben werden.

Für den Netzwerkmodus awsvpc wird die Aufgabe einer Elastic-Network-Schnittstelle zugeordnet und Sie müssen eine NetworkConfiguration angeben, wenn Sie mit der Aufgabendefinition einen Service erstellen oder eine Aufgabe ausführen wollen. Weitere Informationen finden Sie unter Netzwerkoptionen für Amazon ECS-Aufgaben für den Starttyp Fargate. Der awsvpc Netzwerkmodus bietet die höchste Netzwerkleistung für Container, da sie den EC2 Amazon-Netzwerkstapel verwenden. Offene Container-Ports werden direkt auf dem angeschlossenen Elastic-Network-Schnittstellenport abgebildet. Aus diesem Grund können Sie keine dynamischen Host-Port-Zuordnungen nutzen.

Der awsvpc Netzwerkmodus bietet die höchste Netzwerkleistung für Container, da sie den EC2 Amazon-Netzwerkstapel verwenden. Bei den awsvpc Netzwerkmodi werden exponierte Container-Ports direkt dem angeschlossenen elastic network interface Network-Schnittstellenport zugeordnet.

Aus diesem Grund können Sie keine dynamischen Host-Port-Zuordnungen nutzen.

Der awsvpc Netzwerkmodus ist erforderlich.

Laufzeit-Plattform

operatingSystemFamily

Typ: Zeichenfolge

Required: Conditional

Standard: LINUX

Dieser Parameter ist für Amazon-ECS-Aufgaben erforderlich, die auf Fargate gehostet werden.

Wenn Sie eine Aufgabendefinition anmelden, geben Sie die Betriebssystemfamilie an.

Die gültigen Werte sind LINUX, WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2019_CORE, WINDOWS_SERVER_2022_FULL und WINDOWS_SERVER_2022_CORE.

Alle Aufgabendefinitionen, die in einem Service verwendet werden, müssen den gleichen Wert für diesen Parameter aufweisen.

Wenn eine Aufgabendefinition Teil eines Services ist, muss dieser Wert mit dem platformFamily-Wert des Services übereinstimmen.

cpuArchitecture

Typ: Zeichenfolge

Required: Conditional

Standard: X86_64

Wenn der Parameter unverändert null bleibt, wird der Standardwert bei der Initiierung einer auf Fargate gehosteten Aufgabe automatisch zugewiesen.

Wenn Sie eine Aufgabendefinition anmelden, geben Sie die CPU-Architektur an. Die gültigen Werte sind X86_64 und ARM64.

Alle Aufgabendefinitionen, die in einem Service verwendet werden, müssen den gleichen Wert für diesen Parameter aufweisen.

Wenn Sie Linux-Aufgaben haben, können Sie den Wert auf setzenARM64. Weitere Informationen finden Sie unter Amazon ECS-Aufgabendefinitionen für 64-Bit-ARM-Workloads.

Aufgabengröße

Wenn Sie eine Aufgabendefinition registrieren, können Sie den gesamten CPU- und Arbeitsspeicher für die Aufgabe angeben. Dies erfolgt separat von den Werten cpu und memory bei der Containerdefinition. Für Aufgaben, die auf Fargate (Linux und Windows) gehostet werden, sind diese Felder erforderlich und es gibt für spezifische Werte für cpu und memory, die unterstützt werden.

Anmerkung

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

Der folgende Parameter ist in einer Aufgabendefinition zulässig:

cpu

Typ: Zeichenfolge

Required: Conditional

Anmerkung

Dieser Parameter wird für Windows-Container nicht unterstützt.

Das harte Limit der CPU-Einheiten, die für die Aufgabe vorhanden sind. Sie können CPU-Werte in der JSON-Datei als Zeichenfolge in CPU-Einheiten oder virtuell CPUs (vCPUs) angeben. Sie können beispielsweise einen CPU-Wert entweder 1024 in CPU-Einheiten oder 1 vCPU in v angebenCPUs. Wenn die Aufgabendefinition registriert ist, wird ein vCPU-Wert in eine Ganzzahl umgewandelt, die die CPU-Einheiten angibt.

Dieses Feld ist erforderlich, und Sie müssen einen der folgenden Werte verwenden, der den Bereich der unterstützten Werte für den memory Parameter bestimmt. Die folgende Tabelle zeigt die gültigen Kombinationen von CPU- und Speicherauslastung auf Aufgabenebene.

CPU-Wert Speicherwert Unterstützte Betriebssysteme für AWS Fargate
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
8 192 (8 vCPU)
Anmerkung

Diese Option erfordert die Linux-Plattform 1.4.0 oder höher.

Zwischen 16 GB und 60 GB in 4-GB-Schritten Linux
16 384 (16 vCPU)
Anmerkung

Diese Option erfordert die Linux-Plattform 1.4.0 oder höher.

Zwischen 32 GB und 120 GB in 8-GB-Schritten Linux
memory

Typ: Zeichenfolge

Required: Conditional

Anmerkung

Dieser Parameter wird für Windows-Container nicht unterstützt.

Die feste Speichergrenze, die für die Aufgabe zur Verfügung stehen soll. Sie können Speicherwerte in der Aufgabendefinition als Zeichenfolge in Mebibyte (MiB) oder Gigabyte (GB) angeben. Sie können beispielsweise einen Speicherwert entweder 3072 in MiB oder 3 GB in GB angeben. Wenn die Aufgabendefinition registriert ist, wird ein GB-Wert in eine Ganzzahl umgewandelt, die die MiB angibt.

Dieses Feld ist erforderlich, und Sie müssen einen der folgenden Werte verwenden, der den Bereich der unterstützten Werte für den cpu Parameter bestimmt:

Speicherwert (in MiB, mit ungefährem Äquivalenzwert in GB) CPU-Wert Für Fargate unterstützte Betriebssysteme
512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) 256 (0,25 vCPU) Linux
1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) 512 (0,5 vCPU) Linux
2048 (2 GB), 3072 (3 GB), 4096 (4GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) 1024 (1 vCPU) Linux, Windows
Zwischen 4096 (4 GB) und 16384 (16 GB) in Schritten von 1024 (1 GB) 2048 (2 vCPU) Linux, Windows
Zwischen 8192 (8 GB) und 30720 (30 GB) in Schritten von 1024 (1 GB) 4096 (4 vCPU) Linux, Windows
Zwischen 16 GB und 60 GB in 4-GB-Schritten
Anmerkung

Diese Option erfordert die Linux-Plattform 1.4.0 oder höher.

8 192 (8 vCPU)

Linux

Zwischen 32 GB und 120 GB in 8-GB-Schritten
Anmerkung

Diese Option erfordert die Linux-Plattform 1.4.0 oder höher.

16 384 (16 vCPU) Linux

Containerdefinitionen

Wenn Sie eine Aufgabendefinition registrieren, müssen Sie eine Liste von Containerdefinitionen angeben, die an die Docker Daemon auf einer Container-Instance. Die folgenden Parameter sind in einer Containerdefinition zulässig.

Standardparameter für Containerdefinition

Die folgenden Aufgabendefinitionsparameter sind in Containerdefinitionen entweder erforderlich oder werden meistens verwendet.

Name

name

Typ: Zeichenfolge

Erforderlich: Ja

Der Name eines Containers. Bis zu 255 Buchstaben (Groß- und Kleinbuchstaben), Ziffern, Bindestriche und Unterstriche sind zulässig. Wenn Sie mehrere Container in einer Aufgabedefinition verknüpfen, kann der name eines Containers in die links eines anderen Containers eingefügt werden. Das dient dazu, die Container zu verbinden.

Image

image

Typ: Zeichenfolge

Erforderlich: Ja

Das Image zum Starten eines Containers. Diese Zeichenfolge wird direkt an die übergeben Docker Daemon. Standardmäßig sind Bilder in der Docker Hub Die Registrierung ist verfügbar. Sie können entweder mit repository-url/image:tag oder mit repository-url/image@digest auch andere Repositorys angeben. Bis zu 255 Buchstaben (Groß- und Kleinbuchstaben), Ziffern, Bindestriche, Unterstriche, Doppelpunkte, Punkte und Schrägstriche sind zulässig. Dieser Parameter ist dem Image Befehl docker create-container und dem IMAGE Parameter des Befehls docker run zugeordnet.

  • Wenn eine neue Aufgabe gestartet wird, ruft der Amazon-ECS-Container-Agent die neueste Version des angegebenen Image und das Tag für den Container ab, der verwendet werden soll. Allerdings werden nachfolgende Aktualisierungen eines Repository-Images nicht an Aufgaben übertragen, die bereits ausgeführt werden.

  • Wenn Sie im Image-Pfad in der Aufgabendefinition kein Tag oder Digest angeben, ruft der Amazon ECS-Container-Agent die neueste Version des angegebenen Images ab.

  • Allerdings werden nachfolgende Aktualisierungen eines Repository-Images nicht an Aufgaben übertragen, die bereits ausgeführt werden.

  • Images in privaten Registrierungen werden unterstützt. Weitere Informationen finden Sie unter Verwenden von AWS Nicht-Container-Images in Amazon ECS.

  • Images in Amazon ECR-Repositorys können entweder mit der vollständigen registry/repository:tag- oder der registry/repository@digest-Namenskonvention angegeben werden (beispielsweise aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest oder aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE).

  • Bilder in offiziellen Repositorys auf Docker Hub verwenden Sie einen einzigen Namen (z. B. ubuntu odermongo).

  • Bilder in anderen Repositorien auf 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).

versionConsistency

Typ: Zeichenfolge

Gültige Werte: enabled|disabled

Erforderlich: Nein

Gibt an, ob Amazon ECS das in der Container-Definition angegebene Container-Image-Tag in einen Image-Digest auflöst. Standardmäßig ist enabled dieses Verhalten. Wenn Sie den Wert für einen Container auf festlegendisabled, löst Amazon ECS das Container-Image-Tag nicht in einen Digest auf und verwendet den in der Container-Definition angegebenen ursprünglichen Image-URI für die Bereitstellung. Weitere Informationen zur Container-Image-Auflösung finden Sie unterAuflösung des Container-Images.

Arbeitsspeicher

memory

Typ: Ganzzahl

Erforderlich: Nein

Die Menge des Arbeitsspeichers (in MiB), die dem Container bereitgestellt wird. Wenn Ihr Container versucht, das hier angegebene Limit zu überschreiten, wird der Container beendet. Die gesamte Speicherkapazität, die für alle Container reserviert ist, muss niedriger sein als der Aufgabenwert memory, sofern angegeben. Dieser Parameter ist dem Memory Befehl docker create-container und der --memory Option docker run zugeordnet.

Der Docker-Daemon 20.10.0 oder neuer reserviert mindestens 6 MiB Arbeitsspeicher für einen Container. Geben Sie daher nicht weniger als 6 MiB Arbeitsspeicher für Ihre Container an.

Der Docker-Daemon 19.03.13-ce oder älter reserviert mindestens 4 MiB Arbeitsspeicher für einen Container. Geben Sie daher nicht weniger als 4 MiB Arbeitsspeicher für Ihre Container an.

Anmerkung

Wenn Sie versuchen, Ihre Ressourcennutzung zu maximieren, indem Sie Ihren Aufgaben so viel Arbeitsspeicher wie möglich für einen bestimmten Instance-Typ zuweisen, lesen Sie nach unter Reservieren von Amazon ECS Linux-Container-Instance-Speicher.

memoryReservation

Typ: Ganzzahl

Erforderlich: Nein

Die weiche Arbeitsspeichergrenze (in MiB) für die Reservierung für den Container. Wenn der Systemspeicher umkämpft ist, Docker versucht, den Container-Speicher auf diesem Soft-Limit zu halten. Ihr Container kann jedoch bei Bedarf mehr Speicher verwenden. Der Container kann bis zu der mit dem Parameter memory angegebenen harten Grenze (falls zutreffend) oder bis zum gesamten verfügbaren Speicher der Container-Instance verwendet werden, je nachdem, was zuerst eintritt. Dieser Parameter ist dem MemoryReservation Befehl docker create-container und der --memory-reservation Option docker run zugeordnet.

Wenn kein Speicherwert auf Aufgabenebene angegeben ist, müssen Sie eine Ganzzahl ungleich Null für einen oder beide Werte von memory oder memoryReservation in einer Container-Definition angeben. Wenn Sie beide angeben, muss memory größer als memoryReservation sein. Wenn Sie memoryReservation angeben, wird dieser Wert von den verfügbaren Speicherressourcen für die Container-Instance abgezogen, auf der der Container platziert ist. Andernfalls wird der Wert memory verwendet.

Nehmen wir zum Beispiel an, dass Ihr Container normalerweise 128 MiB Arbeitsspeicher verwendet, aber gelegentlich kurzzeitig auf 256 MiB Arbeitsspeicher expandiert. Sie können einen memoryReservation von 128 MiB und einen festen memory-Grenzwert von 300 MiB festlegen. Mit dieser Konfiguration kann der Container nur 128 MiB Arbeitsspeicher von den verbleibenden Ressourcen auf der Container-Instance reservieren. Gleichzeitig ermöglicht die Konfiguration auch, dass der Container bei Bedarf mehr Speicherressourcen verwenden kann.

Anmerkung

Dieser Parameter wird für Windows-Container nicht unterstützt.

Der Docker-Daemon 20.10.0 oder neuer reserviert mindestens 6 MiB Arbeitsspeicher für einen Container. Geben Sie daher nicht weniger als 6 MiB Arbeitsspeicher für Ihre Container an.

Der Docker-Daemon 19.03.13-ce oder älter reserviert mindestens 4 MiB Arbeitsspeicher für einen Container. Geben Sie daher nicht weniger als 4 MiB Arbeitsspeicher für Ihre Container an.

Anmerkung

Wenn Sie versuchen, Ihre Ressourcennutzung zu maximieren, indem Sie Ihren Aufgaben so viel Arbeitsspeicher wie möglich für einen bestimmten Instance-Typ zuweisen, lesen Sie nach unter Reservieren von Amazon ECS Linux-Container-Instance-Speicher.

Port-Zuweisungen

portMappings

Typ: Objekt-Array

Erforderlich: Nein

Portzuordnungen machen die Netzwerkports Ihres Containers der Außenwelt zugänglich. Dadurch können Clients auf Ihre Anwendung zugreifen. Es wird auch für die Kommunikation zwischen Containern innerhalb derselben Aufgabe verwendet.

Legen Sie für Aufgabendefinitionen, die den Netzwerkmodus awsvpc verwenden, nur containerPort fest. Das hostPort wird immer ignoriert, und der Container-Port wird automatisch einem zufälligen Port mit hoher Nummer auf dem Host zugeordnet.

Die Port-Zuweisungen unter Windows verwenden die Gateway-Adresse NetNAT und nicht localhost. Für Port-Zuweisungen unter Windows gibt es kein Loopback, daher können Sie auch nicht vom Host selbst auf den zugewiesenen Port eines Containers zugreifen.

Die meisten Felder dieses Parameters (einschließlich containerPorthostPort,protocol) sind dem Befehl docker create-container und der --publish Option docker run zugeordnet. PortBindings Wenn der Netzwerkmodus einer Aufgabendefinition auf host festgelegt ist, müssen die Host-Ports entweder undefiniert sein oder mit dem Container-Port in der Port-Zuweisung übereinstimmen.

Anmerkung

Nachdem eine Aufgabe den Status RUNNING erreicht hat, sind manuelle und automatische Host- und Container-Port-Zuordnungen an den folgenden Orten sichtbar:

  • Konsole: Abschnitt Network Bindings (Netzwerk-Bindungen) einer Container-Beschreibung für eine bestimmte Aufgabe.

  • AWS CLI: Der Abschnitt networkBindings der Befehlsausgabe describe-tasks.

  • API: DescribeTasks-Antwort.

  • Metadaten: Der Endpunkt der Aufgabenmetadaten.

appProtocol

Typ: Zeichenfolge

Erforderlich: Nein

Das Anwendungsprotokoll, das für die Portzuordnung verwendet wird. Dieser Parameter gilt nur für Service Connect. Wir empfehlen Ihnen, diesen Parameter so festzulegen, dass er mit dem von Ihrer Anwendung verwendeten Protokoll konsistent ist. Wenn Sie diesen Parameter festlegen, fügt Amazon ECS dem Service-Connect-Proxy eine protokollspezifische Verbindungsbehandlung hinzu. Wenn Sie diesen Parameter festlegen, fügt Amazon ECS protokollspezifische Telemetrie in der Amazon ECS-Konsole und hinzu. CloudWatch

Wenn Sie keinen Wert für diesen Parameter festlegen, wird TCP verwendet. Amazon ECS fügt jedoch keine protokollspezifische Telemetrie für TCP hinzu.

Weitere Informationen finden Sie unter Verwenden Sie Service Connect, um Amazon ECS-Services mit Kurznamen zu verbinden.

Gültige Protokollwerte: "http" | "http2" | "grpc"

containerPort

Typ: Ganzzahl

Erforderlich: Ja, wenn portMappings verwendet werden

Die Port-Nummer auf dem Container, der an den vom Benutzer angegebenen oder automatisch zugewiesenen Host-Port gebunden ist.

Bei Aufgaben, die den awsvpc Netzwerkmodus verwenden, geben Sie die verfügbaren Ports containerPort an.

Für Windows-Container auf Fargate können Sie Port 3150 nicht als containerPort verwenden. Das liegt daran, dass er reserviert ist.

containerPortRange

Typ: Zeichenfolge

Erforderlich: Nein

Der Portnummernbereich des Containers, der an den dynamisch zugeordneten Host-Portbereich gebunden ist.

Sie können diesen Parameter nur mithilfe der register-task-definition-API festlegen. Die Option ist im portMappings-Parameter verfügbar. Weitere Informationen finden Sie unter register-task-definition in der AWS Command Line Interface -Referenz.

Die folgenden Regeln gelten, wenn Sie ein containerPortRange angeben :

  • Sie müssen den awsvpc Netzwerkmodus verwenden.

  • Dieser Parameter ist sowohl für Windows- als auch für Linux-Betriebssysteme verfügbar.

  • Die Container-Instance muss mindestens über Version 1.67.0 des Container-Agenten und mindestens über Version 1.67.0-1 des ecs-init-Pakets verfügen.

  • Sie können bis zu 100 Portbereiche für jeden Container angeben.

  • Sie geben keine hostPortRange an. Der Wert von hostPortRange ist wie folgt festgelegt:

    • Für Container in einer Aufgabe mit dem awsvpc-Netzwerkmodus wird hostPort auf denselben Wert wie containerPort festgelegt. Dies ist eine statische Zuordnungsstrategie.

  • Gültige Werte für containerPortRange liegen zwischen 1 and 65 535.

  • Ein Port kann nur in einer Portzuordnung für jeden Container enthalten sein.

  • Sie können keine überlappenden Portbereiche angeben.

  • Die erste Port im Bereich muss kleiner als der letzte Port im Bereich sein.

  • Docker empfiehlt, dass Sie den Docker-Proxy in der Docker Daemon-Konfigurationsdatei, wenn Sie eine große Anzahl von Ports haben.

    Weitere Informationen finden Sie in Ausgabe #11185 unter GitHub.

    Informationen zum Ausschalten des Docker-Proxys finden Sie in der Docker Die Daemon-Konfigurationsdatei finden Sie unter Docker Daemon im Amazon ECS Developer Guide.

Sie können DescribeTasks aufrufen, um die hostPortRange anzuzeigen, bei denen es sich um die Host-Ports handelt, die an die Container-Ports gebunden sind.

Die Portbereiche sind nicht in den Amazon ECS-Aufgabenereignissen enthalten, die an gesendet werden EventBridge. Weitere Informationen finden Sie unter Automatisieren Sie Antworten auf Amazon ECS-Fehler mit EventBridge.

hostPortRange

Typ: Zeichenfolge

Erforderlich: Nein

Der Portnummernbereich auf dem Host, der mit der Netzwerkbindung verwendet wird. Dies wird zugewiesen von Docker und vom Amazon ECS-Agenten geliefert.

hostPort

Typ: Ganzzahl

Erforderlich: Nein

Die Port-Nummer auf der Container-Instance, die für Ihren Container reserviert werden soll.

Das hostPort kann entweder leer gelassen werden oder den gleichen Wert wie habencontainerPort.

Der standardmäßige kurzlebige Portbereich Docker Version 1.6.0 und höher ist auf der Instanz unter aufgeführt. /proc/sys/net/ipv4/ip_local_port_range Wenn dieser Kernel-Parameter nicht verfügbar ist, wird der standardmäßige flüchtige Port-Bereich von 49153–65535 verwendet. Versuchen Sie nicht, einen Host-Port im flüchtigen Portbereich anzugeben. Das liegt daran, dass diese für die automatische Zuweisung reserviert sind. Im Allgemeinen zählen Ports unter 32768 nicht zum flüchtigen Port-Bereich.

Die reservierten Standardports sind 22 für SSH, die Docker Ports 2375 und und 2376 die Amazon ECS-Container-Agent-Ports51678-51680. Jeder Host-Port, der zuvor vom Benutzer für eine laufende Aufgabe festgelegt wurde, ist auch während der Ausführung der Aufgabe reserviert. Nach dem Beenden einer Aufgabe wird der Host-Port freigegeben. Die aktuell reservierten Ports werden in der remainingResources der describe-container-instances-Ausgabe angezeigt. Eine Container-Instance kann bis zu 100 reservierte Ports gleichzeitig haben, einschließlich der standardmäßig reservierten Ports. Automatisch zugewiesene Ports werden nicht auf das Kontingent von 100 reservierten Ports angerechnet.

name

Typ: Zeichenfolge

Erforderlich: Nein, erforderlich, damit Service Connect und VPC Lattice in einem Dienst konfiguriert werden

Der Name, der für die Portzuordnung verwendet wird. Dieser Parameter gilt nur für Service Connect und VPC Lattice. Dieser Parameter ist der Name, den Sie in der Service Connect- und VPC Lattice-Konfiguration eines Dienstes verwenden.

Weitere Informationen finden Sie unter Verwenden Sie Service Connect, um Amazon ECS-Services mit Kurznamen zu verbinden.

Im folgenden Beispiel werden beide Pflichtfelder für Service Connect und VPC Lattice verwendet.

"portMappings": [ { "name": string, "containerPort": integer } ]
protocol

Typ: Zeichenfolge

Erforderlich: Nein

Das für die Port-Zuweisung verwendete Protokoll. Gültige Werte sind tcp und udp. Der Standardwert ist tcp.

Wichtig

Nur tcp wird für Service Connect unterstützt. Denken Sie daran, dass tcp impliziert ist, wenn dieses Feld nicht festgelegt ist.

Verwenden Sie die folgende Syntax, um einen Host-Port anzugeben.

"portMappings": [ { "containerPort": integer, "hostPort": integer } ... ]

Verwenden Sie die folgende Syntax, um einen Host-Port automatisch zuzuweisen.

"portMappings": [ { "containerPort": integer } ... ]

Private-Repository-Daten

repositoryCredentials

Typ: RepositoryCredentials Objekt

Erforderlich: Nein

Die Repository-Anmeldeinformationen für die Authentifizierung bei privaten Registrierungen.

Weitere Informationen finden Sie unter Verwenden von AWS Nicht-Container-Images in Amazon ECS.

credentialsParameter

Typ: Zeichenfolge

Erforderlich: Ja, wenn repositoryCredentials verwendet werden

Der Amazon-Ressourcenname (ARN) des Secrets mit den Anmeldeinformationen für das private Repository.

Weitere Informationen finden Sie unter Verwenden von AWS Nicht-Container-Images in Amazon ECS.

Anmerkung

Wenn Sie die Amazon ECS-API verwenden AWS CLI, oder AWS SDKs, falls der geheime Schlüssel in derselben Region wie die Aufgabe existiert, die Sie starten, können Sie entweder den vollständigen ARN oder den Namen des Geheimnisses verwenden. Wenn Sie den verwenden AWS Management Console, müssen Sie den vollständigen ARN des Geheimnisses angeben.

Im Folgenden finden Sie einen Ausschnitt einer Aufgabendefinition, welche die erforderlichen Parameter zeigt:

"containerDefinitions": [ { "image": "private-repo/private-image", "repositoryCredentials": { "credentialsParameter": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name" } } ]

Erweiterte Parameter für Containerdefinitionen

Die folgenden erweiterten Container-Definitionsparameter bieten erweiterte Funktionen für den Befehl docker run, der zum Starten von Containern auf Ihren Amazon ECS-Container-Instances verwendet wird.

Richtlinie neu starten

restartPolicy

Die Container-Neustart-Richtlinie und die zugehörigen Konfigurationsparameter. Wenn Sie eine Neustartrichtlinie für einen Container einrichten, kann Amazon ECS den Container neu starten, ohne die Aufgabe ersetzen zu müssen. Weitere Informationen finden Sie unter Starten Sie einzelne Container in Amazon ECS-Aufgaben mit Container-Neustart-Richtlinien neu.

enabled

Typ: Boolesch

Erforderlich: Ja

Gibt an, ob eine Neustart-Richtlinie für den Container aktiviert ist.

ignoredExitCodes

Typ: Ganzzahl-Array

Erforderlich: Nein

Eine Liste von Exit-Codes, die Amazon ECS ignoriert und nicht versucht, neu zu starten. Sie können maximal 50 Container-Ausgangscodes angeben. Standardmäßig ignoriert Amazon ECS keine Exit-Codes.

restartAttemptPeriod

Typ: Ganzzahl

Erforderlich: Nein

Ein Zeitraum (in Sekunden), für den der Container ausgeführt werden muss, bevor ein Neustart versucht werden kann. Ein Container kann nur einmal alle restartAttemptPeriod Sekunden neu gestartet werden. Wenn ein Container für diesen Zeitraum nicht ausgeführt werden kann und vorzeitig beendet wird, wird er nicht neu gestartet. Sie können ein Minimum restartAttemptPeriod von 60 Sekunden und ein Maximum restartAttemptPeriod von 1800 Sekunden festlegen. Standardmäßig muss ein Container 300 Sekunden lang laufen, bevor er neu gestartet werden kann.

Zustandsprüfung

healthCheck

Der Befehl für die Container-Zustandsprüfung und die zugehörigen Konfigurationsparameter für den Container. Weitere Informationen finden Sie unter Ermitteln Sie den Zustand von Amazon ECS-Aufgaben mithilfe von Container-Zustandsprüfungen.

command

Ein Zeichenfolgen-Array, das den Befehl darstellt, den der Container ausführt, um festzustellen, ob er fehlerfrei ist. Das Zeichenfolge-Array kann mit CMD beginnen, um die Befehlsargumente direkt auszuführen, oder mit CMD-SHELL, um den Befehl mit der Standard-Shell des Containers auszuführen. Ist nichts davon angegeben, wird CMD verwendet.

Wenn Sie eine Aufgabendefinition in der registrieren AWS Management Console, verwenden Sie eine durch Kommas getrennte Liste von Befehlen. Diese Befehle werden in eine Zeichenfolge konvertiert, nachdem die Aufgabendefinition erstellt wurde. Im Folgenden finden Sie eine Beispieleingabe für eine Zustandsprüfung.

CMD-SHELL, curl -f http://localhost/ || exit 1

Wenn Sie eine Aufgabendefinition mithilfe des AWS Management Console JSON-Bedienfelds registrieren APIs, schließen Sie die Befehlsliste mit dem oder dem in Klammern ein. AWS CLI Im Folgenden finden Sie eine Beispieleingabe für eine Zustandsprüfung.

[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]

Ein Beendigungscode von 0 ohne stderr-Ausgabe zeigt einen Erfolg an, und der Beendigungscode ungleich Null zeigt einen Fehler an.

interval

Der Zeitraum (in Sekunden) zwischen den Zustandsprüfungen. Sie können zwischen 5 und 300 Sekunden angeben. Der Standardwert ist 30 Sekunden.

timeout

Der Zeitraum (in Sekunden), der angibt, wie lange gewartet wird, bis eine Zustandsprüfung erfolgreich ist, bevor sie als fehlerhaft betrachtet wird. Sie können zwischen 2 und 60 Sekunden angeben. Der Standardwert liegt bei 5 Sekunden.

retries

Die Anzahl, wie oft eine fehlgeschlagene Zustandsprüfung wiederholt wird, bevor der Container als fehlerhaft betrachtet wird. Sie können zwischen 1 und 10 Wiederholungen angeben. Der Standardwert ist drei Wiederholungsversuche.

startPeriod

Der optionale Übergangszeitraum, der angibt, wie lange der Container Zeit für einen Bootstrap hat, bevor fehlgeschlagene Zustandsprüfungen der maximalen Anzahl an Wiederholungen angerechnet werden. Sie können einen Wert zwischen 0 und 300 Sekunden angeben. Standardmäßig ist startPeriod deaktiviert.

Wenn eine Zustandsprüfung innerhalb der startPeriod erfolgreich ist, wird die Container als fehlerfrei betrachtet und alle nachfolgenden Ausfälle werden bei der maximal zulässigen Anzahl von Wiederholungen berücksichtigt.

Umgebung

cpu

Typ: Ganzzahl

Erforderlich: Nein

Die Anzahl der physischen cpu-Einheiten, die der Amazon-ECS-Container-Agent für den Container reserviert. Unter Linux ist dieser Parameter dem CpuShares Abschnitt „Container erstellen“ zugeordnet.

Dieses Feld ist für Aufgaben mit dem Fargate-Starttyp optional. Die Gesamtmenge an CPU, die für alle Container innerhalb einer Aufgabe reserviert ist, muss niedriger sein als der cpu-Wert auf Aufgabenebene.

Linux Container teilen sich nicht zugewiesene CPU-Einheiten mit anderen Containern auf der Container-Instance, und zwar im gleichen Verhältnis wie ihre zugewiesene Menge. Nehmen Sie zum Beispiel an, dass Sie eine Aufgabe für einen einzelnen Container auf einer Instance mit einem Kern und 512 CPU-Einheiten für diesen Container ausführen. Außerdem ist diese Aufgabe die einzige Aufgabe, die auf der Container-Instance läuft. In diesem Beispiel kann der Container jederzeit die gesamte Menge von 1 024 CPU-Einheiten nutzen. Angenommen, Sie haben jedoch auf dieser Container-Instance eine weitere Kopie der gleichen Aufgabe gestartet. Jede Aufgabe würde bei Bedarf eine garantierte Menge von mindestens 512 CPU-Einheiten erhalten. Ebenso kann jeder Container zu einer höheren CPU-Auslastung übergehen, wenn der andere Container die verbleibende CPU nicht nutzt. Wenn jedoch beide Aufgaben die ganze Zeit 100 % aktiv sind, stünden ihnen jeweils nur 512 CPU-Einheiten zur Verfügung.

Ein Linux Container-Instances, die Docker Der Daemon auf der Container-Instance verwendet den CPU-Wert, um die relativen CPU-Anteilsverhältnisse für laufende Container zu berechnen. Der Mindestwert für den gültigen CPU-Anteil, den der Linux-Kernel zulässt, ist 2, und der maximale zulässige CPU-Anteilswert, den der Linux-Kernel zulässt, ist 262144. Der CPU-Parameter ist jedoch nicht erforderlich, und Sie können CPU-Werte unter zwei und über 262144 in Ihren Containerdefinitionen verwenden. Bei CPU-Werten unter zwei (einschließlich Null) und über 262144 variiert das Verhalten je nach Ihrer Amazon ECS-Container-Agent-Version:

Ein Windows Bei Container-Instances wird das CPU-Kontingent als absolutes Kontingent durchgesetzt. Windows Container haben nur Zugriff auf die angegebene CPU-Menge, die in der Aufgabendefinition definiert ist. Ein CPU-Wert von Null oder Null wird übergeben an Docker als0. Windows interpretiert diesen Wert dann als 1% einer CPU.

Weitere Beispiele finden Sie unter So verwaltet Amazon ECS CPU- und Arbeitsspeicher-Ressourcen.

gpu

Dieser Parameter wird für Container, die auf Fargate gehostet werden, nicht unterstützt.

Typ: ResourceRequirement Objekt

Erforderlich: Nein

Die Anzahl der physischen GPUs, die der Amazon-ECS-Container-Agent für den Container reserviert. Die Anzahl der für alle Container in einer Aufgabe GPUs reservierten Container darf die Anzahl der verfügbaren Container auf der Container-Instance, GPUs auf der die Aufgabe gestartet wird, nicht überschreiten. Weitere Informationen finden Sie unter Amazon ECS-Aufgabendefinitionen für GPU-Workloads.

Elastic Inference accelerator

Dieser Parameter wird für Container, die auf Fargate gehostet werden, nicht unterstützt.

Typ: ResourceRequirement Objekt

Erforderlich: Nein

Für den InferenceAccelerator-Typ stimmt der value mit dem deviceName für einen InferenceAccelerator überein, der in einer Aufgabendefinition angegeben ist. Weitere Informationen finden Sie unter Der Name des Elastic-Inference-Beschleunigers.

essential

Typ: Boolesch

Erforderlich: Nein

Nehmen wir an, der essential-Parameter eines Containers ist als true gekennzeichnet und dieser Container schlägt fehl oder wird aus irgendeinem Grund beendet. Dann werden alle anderen Container beendet, die Teil der Aufgabe sind. Wenn der Parameter essential eines Containers als false gekennzeichnet ist, wirkt sich ein Ausfall dieses Containers nicht auf die anderen Container in der Aufgabe aus. Wenn dieser Parameter ausgelassen wird, wird davon ausgegangen, dass ein Container „essential“ (entscheidend) ist.

Alle Aufgaben müssen über mindestens einen entscheidenden Container verfügen. Angenommen, Sie haben eine Anwendung, die aus mehreren Containern besteht. Dann gruppieren Sie Container, die für einen gemeinsamen Zweck verwendet werden, in Komponenten und teilen die verschiedenen Komponenten in mehrere Aufgabendefinitionen auf. Weitere Informationen finden Sie unter Entwickeln Sie Ihre Anwendung für Amazon ECS.

"essential": true|false
entryPoint
Wichtig

Von frühen Versionen des Amazon-ECS-Container-Agenten werden die entryPoint-Parameter nicht korrekt verarbeitet. Wenn Sie Probleme bei der Verwendung von entryPoint haben, aktualisieren Sie Ihren Container-Agenten oder geben Sie Ihre Befehle und Argumente stattdessen als command-Array-Objekte an.

Typ: Zeichenfolgen-Array

Erforderlich: Nein

Der Eintrittspunkt, der an den Container übergeben wird.

"entryPoint": ["string", ...]
command

Typ: Zeichenfolgen-Array

Erforderlich: Nein

Der Befehl, der an den Container übergeben wird. Dieser Parameter ist Cmd dem Befehl create-container und dem COMMAND Parameter docker run zugeordnet. Wenn mehrere Argumente vorhanden sind, stellen Sie sicher, dass jedes Argument eine getrennte Zeichenfolge im Array ist.

"command": ["string", ...]
workingDirectory

Typ: Zeichenfolge

Erforderlich: Nein

Das Arbeitsverzeichnis, in dem Befehle im Container ausgeführt werden sollen. Dieser Parameter ordnet zu WorkingDir im Bereich Erstellen eines Containers der Docker Remote API und der Option --workdir für die docker run zu.

"workingDirectory": "string"
environmentFiles

Dies ist für Windows-Container auf Fargate nicht verfügbar.

Typ: Objekt-Array

Erforderlich: Nein

Eine Liste von Dateien, die die Umgebungsvariablen enthalten, die an einen Container übergeben werden sollen. Dieser Parameter ist der --env-file Option für den Befehl docker run zugeordnet.

Sie können bis zu 10 Umgebungsdateien angeben. Die Datei muss eine .env Dateierweiterung haben. Jede Zeile in einer Umgebungsdatei enthält eine Umgebungsvariable im Format VARIABLE=VALUE. Zeilen, die mit # beginnen, werden als Kommentare behandelt und ignoriert.

Wenn in der Containerdefinition einzelne Umgebungsvariablen angegeben sind, haben sie Vorrang vor den Variablen, die in einer Umgebungsdatei enthalten sind. Wenn mehrere Umgebungsdateien angegeben werden, die dieselbe Variable enthalten, werden sie von oben nach unten verarbeitet. Es wird empfohlen, eindeutige Variablennamen zu verwenden. Weitere Informationen finden Sie unter Übergeben Sie eine einzelne Umgebungsvariable an einen Amazon ECS-Container.

value

Typ: Zeichenfolge

Erforderlich: Ja

Der Amazon-Ressourcenname (ARN) des Amazon S3-Objekts, das die Umgebungsvariablendatei enthält.

type

Typ: Zeichenfolge

Erforderlich: Ja

Dateityp, der verwendet werden muss. Der einzige unterstützte Wert ist s3.

environment

Typ: Objekt-Array

Erforderlich: Nein

Die Umgebungsvariablen, die an einen Container übergeben werden. Dieser Parameter ist dem Env Befehl docker create-container und der --env Option dem Befehl docker run zugeordnet.

Wichtig

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

name

Typ: Zeichenfolge

Erforderlich: ja, wenn environment verwendet wird

Der Name der Umgebungsvariable.

value

Typ: Zeichenfolge

Erforderlich: ja, wenn environment verwendet wird

Der Wert der Umgebungsvariable.

"environment" : [ { "name" : "string", "value" : "string" }, { "name" : "string", "value" : "string" } ]
secrets

Typ: Objekt-Array

Erforderlich: Nein

Ein Objekt, durch das das Secret dargestellt wird, das dem Container zur Verfügung gestellt werden soll. Weitere Informationen finden Sie unter Übergeben Sie vertrauliche Daten an einen Amazon ECS-Container.

name

Typ: Zeichenfolge

Erforderlich: Ja

Der Wert, der als Umgebungsvariable auf dem Container eingestellt werden soll.

valueFrom

Typ: Zeichenfolge

Erforderlich: Ja

Das Geheimnis, das dem Container exponiert werden muss. Die unterstützten Werte sind entweder der vollständige Amazon Resource Name (ARN) des AWS Secrets Manager Secrets oder der vollständige ARN des Parameters im AWS Systems Manager Parameter Store.

Anmerkung

Wenn der Systems Manager Parameter Store-Parameter oder der Secrets Manager Manager-Parameter in derselben AWS-Region Datei wie die Aufgabe, die Sie starten, vorhanden ist, können Sie entweder den vollständigen ARN oder den Namen des Secrets verwenden. Wenn der Parameter in einer anderen Region existiert, muss der volle ARN angegeben werden.

"secrets": [ { "name": "environment_variable_name", "valueFrom": "arn:aws:ssm:region:aws_account_id:parameter/parameter_name" } ]

Network settings (Netzwerkeinstellungen)

disableNetworking

Dieser Parameter wird für Aufgaben, die auf Fargate ausgeführt werden, nicht unterstützt.

Typ: Boolesch

Erforderlich: Nein

Wenn dieser Parameter den Wert „true“ aufweist, ist die Netzwerkfunktion innerhalb des Containers deaktiviert.

Der Standardwert ist false.

"disableNetworking": true|false

Dieser Parameter wird für Aufgaben, die den awsvpc Netzwerkmodus verwenden, nicht unterstützt.

Typ: Zeichenfolgen-Array

Erforderlich: Nein

Über den Parameter link können Container miteinander kommunizieren, ohne dass Port-Zuweisungen nötig sind. Dieser Parameter wird nur unterstützt, wenn der Netzwerkmodus einer Aufgabendefinition auf bridge gesetzt ist. Das name:internalName Konstrukt ist analog zu in name:alias Docker Links. Bis zu 255 Buchstaben (Groß- und Kleinbuchstaben), Zahlen, Bindestriche und Unterstriche sind zulässig..

Wichtig

Container, die sich auf derselben Container-Instance befinden, können miteinander kommunizieren, ohne dass Verbindungen oder Host-Port-Zuweisungen erforderlich sind. Die Netzwerkisolierung auf einer Container-Instance wird durch Sicherheitsgruppen und VPC-Einstellungen gesteuert.

"links": ["name:internalName", ...]
hostname

Typ: Zeichenfolge

Erforderlich: Nein

Der Hostname, der für Ihren Container verwendet werden soll. Dieser Parameter ist dem Hostname Docker-Create-Container und der --hostname Option Docker Run zugeordnet.

Anmerkung

Wenn Sie den Netzwerkmodus awsvpc verwenden, wird der Parameter hostname nicht unterstützt.

"hostname": "string"
dnsServers

Dies wird für Aufgaben, die auf Fargate ausgeführt werden, nicht unterstützt.

Typ: Zeichenfolgen-Array

Erforderlich: Nein

Eine List der DNS-Server, die dem Container bereitgestellt werden.

"dnsServers": ["string", ...]
extraHosts

Dieser Parameter wird für Aufgaben, die den awsvpc Netzwerkmodus verwenden, nicht unterstützt.

Typ: Objekt-Array

Erforderlich: Nein

Eine Liste der Hostnamen und IP-Adresszuordnungen, die an die Datei /etc/hosts auf dem Container angefügt werden.

Dieser Parameter ist dem ExtraHosts Befehl docker create-container und der --add-host Option docker run zugeordnet.

"extraHosts": [ { "hostname": "string", "ipAddress": "string" } ... ]
hostname

Typ: Zeichenfolge

Erforderlich: Ja, wenn extraHosts verwendet werden

Der Hostname, der im Eintrag /etc/hosts verwendet werden soll.

ipAddress

Typ: Zeichenfolge

Erforderlich: Ja, wenn extraHosts verwendet werden

Die IP-Adresse, die im Eintrag /etc/hosts verwendet werden soll.

Speicher und Protokollierung

readonlyRootFilesystem

Typ: Boolesch

Erforderlich: Nein

Wenn dieser Parameter den Wert „true“ aufweist, erhält der Container Lesezugriff auf das Root-Dateisystem. Dieser Parameter entspricht ReadonlyRootfs im Befehl docker create-container der --read-only Option docker run.

Anmerkung

Dieser Parameter wird für Windows-Container nicht unterstützt.

Der Standardwert ist false.

"readonlyRootFilesystem": true|false
mountPoints

Typ: Objekt-Array

Erforderlich: Nein

Die Bereitstellungspunkte für die Datenvolumes in Ihrem Container. Dieser Parameter ist der Docker-API „Create-Container“ und der --volume Option „Docker Run“ zugeordnet. Volumes

Windows-Container können ganze Verzeichnisse auf dem gleichen Laufwerk wie $env:ProgramData mounten. Windows-Container können keine Verzeichnisse auf einem anderen Laufwerk mounten, und Bereitstellungspunkte können nicht laufwerksübergreifend verwendet werden. Sie müssen Bereitstellungspunkte angeben, um ein Amazon EBS-Volume direkt an eine Amazon ECS-Aufgabe anzuhängen.

sourceVolume

Typ: Zeichenfolge

Erforderlich: Ja, wenn mountPoints verwendet werden

Der Name des zu mountenden Volumes.

containerPath

Typ: Zeichenfolge

Erforderlich: Ja, wenn mountPoints verwendet werden

Der Pfad im Container, in dem das Volume bereitgestellt werden soll.

readOnly

Typ: Boolesch

Erforderlich: Nein

Wenn dieser Wert true lautet, verfügt der Container über schreibgeschützten Zugriff auf das Volume. Lautet der Wert false, dann verfügt der Container über Schreibzugriff auf das Volume. Der Standardwert ist false.

Behalten Sie für Aufgaben, die auf EC2 Instanzen ausgeführt werden, auf denen das Windows-Betriebssystem ausgeführt wird, den Standardwert von beifalse.

volumesFrom

Typ: Objekt-Array

Erforderlich: Nein

Die Daten-Volumens, die von einem anderen Container gemountet werden sollen. Dieser Parameter ist dem VolumesFrom Befehl docker create-container und der --volumes-from Option docker run zugeordnet.

sourceContainer

Typ: Zeichenfolge

Erforderlich: ja, wenn volumesFrom verwendet wird

Der Name des Containers, von dem die Volumes gemountet werden.

readOnly

Typ: Boolesch

Erforderlich: Nein

Wenn dieser Wert true lautet, verfügt der Container über schreibgeschützten Zugriff auf das Volume. Lautet der Wert false, dann verfügt der Container über Schreibzugriff auf das Volume. Der Standardwert ist false.

"volumesFrom": [ { "sourceContainer": "string", "readOnly": true|false } ]
logConfiguration

Typ: Objekt LogConfiguration

Erforderlich: Nein

Die Angabe der Protokollkonfiguration für den Container.

Beispiele für Aufgabendefinitionen, die eine Protokollkonfiguration verwenden, finden Sie unter Beispiel für Amazon ECS-Aufgabendefinitionen.

Dieser Parameter ist dem LogConfig Befehl docker create-container und der --log-driver Option docker run zugeordnet. Standardmäßig verwenden Container denselben Logging-Treiber wie der Docker Daemon verwendet. Der Container verwendet jedoch möglicherweise einen anderen Protokollierungstreiber als der Docker Daemon, indem Sie einen Protokolltreiber mit diesem Parameter in der Containerdefinition angeben. Um für einen Container einen anderen Protokolltreiber zu verwenden, muss das Protokollsystem auf der Container-Instance (oder einem anderen Protokollserver für die Remote-Protokollierung) ordnungsgemäß konfiguriert sein.

Beachten Sie die folgenden Punkte, wenn eine Protokollkonfiguration für Ihre Container angegeben ist:

  • Amazon ECS unterstützt eine Teilmenge der Protokollierungstreiber, die für Docker Daemon. Es ist möglich, dass in zukünftigen Releases des Amazon-ECS-Container-Agenten weitere Protokolltreiber zur Verfügung stehen.

  • Dieser Parameter erfordert Version 1.18 oder höher von Docker Remote-API auf Ihrer Container-Instance.

  • Sie müssen jede zusätzliche Software außerhalb der Aufgabe installieren. Zum Beispiel die Fluentd Ausgabeaggregatoren oder ein Remote-Host, auf dem Logstash zum Senden ausgeführt wird Gelf loggt sich ein an.

"logConfiguration": { "logDriver": "awslogs","fluentd","gelf","json-file","journald","splunk","syslog","awsfirelens", "options": {"string": "string" ...}, "secretOptions": [{ "name": "string", "valueFrom": "string" }] }
logDriver

Typ: Zeichenfolge

Zulässige Werte: "awslogs","fluentd","gelf","json-file","journald","splunk","syslog","awsfirelens"

Erforderlich: ja, wenn logConfiguration verwendet wird

Der für den Container zu verwendende Protokolltreiber. Standardmäßig sind die zuvor aufgeführten gültigen Werte Protokolltreiber, mit denen der Amazon-ECS-Container-Agent kommunizieren kann.

Die unterstützten Protokolltreiber sind awslogssplunk, undawsfirelens.

Weitere Informationen zur Verwendung des awslogs Protokolltreibers in Aufgabendefinitionen zum Senden Ihrer CloudWatch Containerprotokolle an Logs finden Sie unterAmazon ECS-Protokolle senden an CloudWatch .

Weitere Informationen zur Verwendung des Protokolltreibers awsfirelens finden Sie unter Routing benutzerdefinierter Protokolle.

Anmerkung

Wenn Sie einen benutzerdefinierten Treiber haben, der nicht aufgeführt ist, können Sie das Amazon ECS-Container-Agent-Projekt, das verfügbar ist, forken GitHub und es so anpassen, dass es mit diesem Treiber funktioniert. Wir möchten Sie bitten, uns eventuelle Änderungswünsche mitzuteilen. Allerdings unterstützen wir derzeit nicht die Ausführung modifizierter Kopien dieser Software.

Für diesen Parameter muss Ihre Docker Remote API Version 1.18 oder höher in Ihrer Container-Instance verwenden.

options

Typ: Abbildung einer Zeichenfolge auf eine Zeichenfolge

Erforderlich: Nein

Die Schlüssel/Wert-Map der Konfigurationsoptionen, die an den Protokolltreiber gesendet werden sollen.

Die Optionen, die Sie angeben können, hängen vom Protokolltreiber ab. Zu den Optionen, die Sie angeben können, wenn Sie den awslogs Router zum Weiterleiten von Protokollen an Amazon verwenden, CloudWatch gehören die folgenden:

awslogs-create-group

Erforderlich: Nein

Geben Sie an, ob die Protokollgruppe automatisch erstellt werden soll. Wenn diese Option nicht angegeben ist, gilt standardmäßig false.

Anmerkung

Ihre IAM-Richtlinie muss die logs:CreateLogGroup-Berechtigung umfassen, bevor Sie awslogs-create-group zu nutzen versuchen.

awslogs-region

Erforderlich: Ja

Geben Sie an AWS-Region , an awslogs wen der Protokolltreiber Ihre Docker-Protokolle senden soll. In Logs können Sie wählen, ob Sie alle Ihre Logs von Clustern in verschiedenen Regionen an eine einzige Region senden möchten. CloudWatch Dann sind alle an einem Standort sichtbar. Andernfalls können Sie sie nach Region aufteilen, um eine höhere Granularität zu erzielen. Vergewissern Sie sich, dass die angegebene Protokollgruppe in der Region vorhanden ist, die Sie mit dieser Option festlegen.

awslogs-group

Erforderlich: Ja

Sie müssen eine Protokollgruppe angeben, an die der awslogs-Protokolltreiber seine Protokoll-Streams sendet.

awslogs-stream-prefix

Erforderlich: Ja

Mit der awslogs-stream-prefix-Option können Sie einen Protokoll-Stream mit dem angegebenen Präfix, dem Containernamen und der ID der Amazon-ECS-Aufgabe verknüpfen, zu der der Container gehört. Wenn Sie einen Präfix mit dieser Option angeben, weist der Protokoll-Stream das folgende Format auf:

prefix-name/container-name/ecs-task-id

Wenn Sie keinen Präfix mit dieser Option angeben, wird der Protokoll-Stream nach der Container-ID benannt, die vom Docker-Daemon auf der Container-Instance zugewiesen wurde. Da es schwierig ist, Protokolle nur mit der Docker-Container-ID (die nur auf der Container-Instance verfügbar ist) zum Container zurückzuverfolgen, der sie gesendet hat, empfehlen wir, dass Sie einen Präfix mit dieser Option festlegen.

Für Amazon-ECS-Services können Sie den Servicenamen als Präfix verwenden. So können Sie Protokollstreams zu dem Service zurückverfolgen, zu dem der Container gehört, den Namen des Containers ermitteln, der sie gesendet hat, und die ID der Aufgabe, zu der der Container gehört.

Sie müssen ein Stream-Präfix für Ihre Protokolle angeben, damit Ihre Protokolle im Protokollfeld der Amazon-ECS-Konsole angezeigt werden.

awslogs-datetime-format

Erforderlich: Nein

Diese Option definiert einen mehrzeiliges Startmuster im strftime-Format von Python. Eine Protokollmeldung besteht aus einer Zeile, die mit dem angegebenen Muster übereinstimmt, und allen folgenden Zeilen, die nicht dem Muster entsprechen. Die zugeordnete Zeile ist das Trennzeichen zwischen Protokollnachrichten.

Ein Beispiel für einen Anwendungsfall für die Nutzung dieses Formats ist die Ausgabenanalyse, z. B. einen Stack-Dump, der andernfalls möglicherweise mehrere Einträge protokolliert. Mit dem richtigen Muster kann es in nur einem Eintrag erfasst werden.

Weitere Informationen finden Sie unter awslogs-datetime-format.

Sie können nicht sowohl die Optionen awslogs-datetime-format und awslogs-multiline-pattern konfigurieren.

Anmerkung

Bei der mehrzeiligen Protokollierung wird eine regelmäßige Ausdrucksanalyse und die Übereinstimmung aller Protokollmeldungen ausgeführt. Dies kann negative Auswirkungen auf die Leistung der Protokollierung haben.

awslogs-multiline-pattern

Erforderlich: Nein

Diese Option definiert ein mehrzeiliges Startmuster mit einem regulären Ausdruck. Eine Protokollmeldung besteht aus einer Zeile, die mit dem angegebenen Muster übereinstimmt, und allen folgenden Zeilen, die nicht dem Muster entsprechen. Die zugeordnete Zeile ist das Trennzeichen zwischen Protokollnachrichten.

Weitere Informationen finden Sie unter awslogs-multiline-pattern.

Diese Option wird ignoriert, wenn awslogs-datetime-format ebenfalls konfiguriert ist.

Sie können nicht sowohl die Optionen awslogs-datetime-format und awslogs-multiline-pattern konfigurieren.

Anmerkung

Bei der mehrzeiligen Protokollierung wird eine regelmäßige Ausdrucksanalyse und die Übereinstimmung aller Protokollmeldungen ausgeführt. Dies kann negative Auswirkungen auf die Leistung der Protokollierung haben.

Die folgenden Optionen gelten für alle unterstützten Protokolltreiber.

mode

Erforderlich: Nein

Zulässige Werte: non-blocking | blocking

Diese Option definiert den Übermittlungsmodus von Protokollnachrichten vom Container an den Protokolltreiber, der mit angegeben wurdelogDriver. Der von Ihnen gewählte Übermittlungsmodus wirkt sich auf die Anwendungsverfügbarkeit aus, wenn der Protokollfluss aus dem Container unterbrochen wird.

Wenn Sie diesen blocking Modus verwenden und der Protokollfluss unterbrochen wird, werden Aufrufe vom Container-Code zum Schreiben in die stdout stderr AND-Streams blockiert. Der Logging-Thread der Anwendung wird daraufhin blockiert. Dies kann dazu führen, dass die Anwendung nicht mehr reagiert und die Container-Zustandsprüfung fehlschlägt.

Wenn Sie den non-blocking-Modus verwenden, werden die Protokolle des Containers stattdessen in einem mit der Option max-buffer-size konfigurierten Zwischenpuffer im Arbeitsspeicher gespeichert. Dadurch wird verhindert, dass die Anwendung nicht mehr reagiert, wenn Protokolle nicht gesendet werden können. Wir empfehlen, diesen Modus zu verwenden, wenn Sie die Verfügbarkeit des Services sicherstellen möchten und einen gewissen Protokollverlust in Kauf nehmen möchten. Weitere Informationen finden Sie unter Verhinderung von Protokollverlusten im blockierungsfreien Modus im awslogs Container-Protokolltreiber.

Mithilfe der defaultLogDriverMode Kontoeinstellungen können Sie einen Standard mode für alle Container in AWS-Region einem bestimmten Container festlegen. Wenn Sie die mode Option nicht in der Kontoeinstellung angeben logConfiguration oder die Kontoeinstellung konfigurieren, verwendet Amazon ECS standardmäßig den blocking Modus. Weitere Informationen zur Kontoeinstellung finden Sie unterStandardmodus für Protokolltreiber.

Wenn der nicht blockierende Modus verwendet wird, steuert die max-buffer-size Protokolloption die Größe des Puffers, der für die Zwischenspeicherung von Nachrichten verwendet wird. Stellen Sie sicher, dass Sie eine für Ihre Anwendung angemessene Puffergröße angeben. Wenn der Puffer voll ist, können keine weiteren Protokolle gespeichert werden. Protokolle, die nicht gespeichert werden können, gehen verloren. Die Gesamtmenge des auf Aufgabenebene zugewiesenen Speichers sollte größer sein als die Speichermenge, die allen Containern zusätzlich zum Speicherpuffer des Protokolltreibers zugewiesen wurde. Wenn der Puffer voll ist, können keine weiteren Protokolle gespeichert werden. Protokolle, die nicht gespeichert werden können, gehen verloren. Die Gesamtmenge des auf Aufgabenebene zugewiesenen Speichers sollte größer sein als die Speichermenge, die allen Containern zusätzlich zum Protokolltreiber-Speicherpuffer zugewiesen ist.

Anmerkung

Am 25. Juni 2025 ändert Amazon ECS den standardmäßigen Protokolltreibermodus von blocking zu, non-blocking um der Verfügbarkeit von Aufgaben Vorrang vor der Protokollierung einzuräumen. Gehen Sie wie folgt vor, um den blocking Modus nach dieser Änderung weiter zu verwenden:

  • Stellen Sie die mode Option in Ihren Containerdefinitionen logConfiguration als einblocking.

  • Stellen Sie die defaultLogDriverMode Kontoeinstellung auf einblocking.

max-buffer-size

Erforderlich: Nein

Standardwert: 1m

Wenn der non-blocking-Modus verwendet wird, steuert die max-buffer-size-Protokolloption die Größe des Puffers, der für die Zwischenspeicherung von Nachrichten verwendet wird. Stellen Sie sicher, dass Sie eine für Ihre Anwendung angemessene Puffergröße angeben. Wenn der Puffer voll ist, können keine weiteren Protokolle gespeichert werden. Protokolle, die nicht gespeichert werden können, gehen verloren.

Um Protokolle mithilfe des splunk Protokollrouters weiterzuleiten, müssen Sie a splunk-token und a angebensplunk-url.

Wenn Sie den awsfirelens Log-Router verwenden, um Logs zur Protokollspeicherung und Analyse an ein AWS-Service AWS Partner Network Oder-Ziel weiterzuleiten, können Sie die log-driver-buffer-limit Option so einstellen, dass die Anzahl der Ereignisse begrenzt wird, die im Speicher zwischengespeichert werden, bevor sie an den Log Router-Container gesendet werden. Dies kann helfen, ein potenzielles Problem mit dem Verlust von Protokollen zu lösen, da ein hoher Durchsatz dazu führen kann, dass der Puffer in Docker. Weitere Informationen finden Sie unterKonfiguration von Amazon ECS-Protokollen für hohen Durchsatz.

Andere Optionen, die Sie beim Weiterleiten von awsfirelens Protokollen angeben können, hängen vom Ziel ab. Wenn Sie Protokolle nach Amazon Data Firehose exportieren, können Sie das AWS-Region mit region und einen Namen für den Protokollstream mit delivery_stream angeben.

Wenn Sie Protokolle nach Amazon Kinesis Data Streams exportieren, können Sie ein AWS-Region mit region und einen Datenstream-Namen mit stream angeben.

Wenn Sie Protokolle nach Amazon OpenSearch Service exportieren, können Sie Optionen wie Name Host (OpenSearch Service-Endpunkt ohne Protokoll),Port,Index,Type,Aws_auth, Aws_regionSuppress_Type_Name, und angebentls.

Wenn Sie Protokolle nach Amazon S3 exportieren, können Sie den Bucket mithilfe der bucket Option angeben. Sie können auchregion, total_file_sizeupload_timeout, und use_put_object als Optionen angeben.

Für diesen Parameter muss Ihre Docker Remote API Version 1.19 oder höher in Ihrer Container-Instance verwenden.

secretOptions

Typ: Objekt-Array

Erforderlich: Nein

Ein Objekt, welches das Secret darstellt, der an die Protokollkonfiguration übergeben werden soll. Zu den Secrets, die in der Protokollkonfiguration verwendet werden, können ein Authentifizierungs-Token, ein Zertifikat oder ein Verschlüsselungsschlüssel gehören. Weitere Informationen finden Sie unter Übergeben Sie vertrauliche Daten an einen Amazon ECS-Container.

name

Typ: Zeichenfolge

Erforderlich: Ja

Der Wert, der als Umgebungsvariable auf dem Container eingestellt werden soll.

valueFrom

Typ: Zeichenfolge

Erforderlich: Ja

Das Geheimnis zur Bereitstellung der Protokollkonfiguration des Containers.

"logConfiguration": { "logDriver": "splunk", "options": { "splunk-url": "https://cloud.splunk.com:8080", "splunk-token": "...", "tag": "...", ... }, "secretOptions": [{ "name": "splunk-token", "valueFrom": "/ecs/logconfig/splunkcred" }] }
firelensConfiguration

Typ: FirelensConfigurationObjekt

Erforderlich: Nein

Die FireLens Konfiguration für den Container. Dies wird verwendet, um einen Protokollrouter für Container-Protokolle anzugeben und zu konfigurieren. Weitere Informationen finden Sie unter Amazon ECS-Protokolle an einen AWS Service senden oder AWS Partner.

{ "firelensConfiguration": { "type": "fluentd", "options": { "KeyName": "" } } }
options

Typ: Abbildung einer Zeichenfolge auf eine Zeichenfolge

Erforderlich: Nein

Die Schlüssel/Wert-Map der Optionen, die bei der Konfiguration des Protokoll-Routers verwendet werden sollen. Dieses Feld ist optional und kann verwendet werden, um eine benutzerdefinierte Konfigurationsdatei anzugeben oder dem Protokollereignis zusätzliche Metadaten hinzuzufügen, z. B. Aufgaben-, Aufgabendefinitions-, Cluster- und Container-Instance-Details. Wenn angegeben, ist die zu verwendende Syntax "options":{"enable-ecs-log-metadata":"true|false","config-file-type:"s3|file","config-file-value":"arn:aws:s3:::amzn-s3-demo-bucket/fluent.conf|filepath"}. Weitere Informationen finden Sie unter Beispiel für eine Amazon ECS-Aufgabendefinition: Protokolle weiterleiten an FireLens.

type

Typ: Zeichenfolge

Erforderlich: Ja

Der zu verwendende Protokollrouter. Die gültigen Werte sind fluentd und fluentbit.

Sicherheit

Weitere Informationen zur Containersicherheit finden Sie unter Amazon ECS Task and Container Security Best Practices.

credentialSpecs

Typ: Zeichenfolgen-Array

Erforderlich: Nein

Eine Liste von ARNs in SSM oder Amazon S3 in einer Credential Spec (CredSpec) -Datei, die den Container für die Active Directory-Authentifizierung konfiguriert. Es wird empfohlen, diesen Parameter anstelle von dockerSecurityOptions zu verwenden. Die maximale Anzahl von ist 1. ARNs

Es gibt zwei Formate für jeden ARN.

credentialspecdomainless:MyARN

Sie verwenden credentialspecdomainless:MyARN, um CredSpec einen zusätzlichen Abschnitt für ein Secret in Secrets Manager bereitzustellen. Sie geben die Anmeldeinformationen für die Domain im Secret an.

Jede Aufgabe, die auf einer beliebigen Container-Instance ausgeführt wird, kann verschiedenen Domains beitreten.

Sie können dieses Format verwenden, ohne die Container-Instance mit einer Domain zu verbinden.

credentialspec:MyARN

Sie verwenden credentialspec:MyARN, um CredSpec für eine einzelne Domain bereitzustellen.

Sie müssen die Container-Instance mit der Domain verbinden, bevor Sie Aufgaben starten, die diese Aufgabendefinition verwenden.

Ersetzen Sie in beiden Formaten MyARN durch den ARN in SSM oder Amazon S3.

Die credspec muss im Secrets Manager einen ARN für ein Secret angeben, das den Benutzernamen, das Passwort und die Domain enthält, zu der eine Verbindung hergestellt werden soll. Aus Sicherheitsgründen ist die Instance bei der domainlosen Authentifizierung nicht mit der Domain verbunden. Andere Anwendungen auf der Instance können die domainlosen Anmeldeinformationen nicht verwenden. Sie können diesen Parameter verwenden, um Aufgaben auf derselben Instance auszuführen, auch wenn die Aufgaben mit verschiedenen Domains verbunden werden müssen. Weitere Informationen finden Sie unter G MSAs für Windows-Container verwenden und G MSAs für Linux-Container verwenden.

user

Typ: Zeichenfolge

Erforderlich: Nein

Der Benutzer, der im Container verwendet werden soll. Dieser Parameter ist dem User Befehl docker create-container und der --user Option docker run zugeordnet.

Wichtig

Wenn Sie Aufgaben im Netzwerkmodus host ausführen, sollten Sie Container nicht über den Root-Benutzer (UID 0) ausführen. Verwenden Sie als bewährte Sicherheitsmethode immer einen Nicht-Root-Benutzer.

Sie können den user mit den folgenden Formaten angeben. Wenn Sie eine User Identifier (UID, Benutzerbezeichner) und Group Identifier (GID, Gruppenbezeichner) angeben, müssen Sie sie als positive Ganzzahl angeben.

  • user

  • user:group

  • uid

  • uid:gid

  • user:gid

  • uid:group

Anmerkung

Dieser Parameter wird für Windows-Container nicht unterstützt.

"user": "string"

Ressourcenlimits

ulimits

Typ: Objekt-Array

Erforderlich: Nein

Eine Liste von ulimit-Werten, die für einen Container definiert werden sollen. Dieser Wert überschreibt die Standardeinstellung für das Ressourcenkontingent für das Betriebssystem. Dieser Parameter ist dem Ulimits Befehl docker create-container und der --ulimit Option docker run zugeordnet.

Amazon-ECS-Aufgaben, die auf Fargate gehosted werden, verwenden die Standardwerte für Ressourcenlimits, die vom Betriebssystem gesetzt wurden. Ausgenommen ist der Ressourcenlimitparameter nofile. Das Ressourcenlimit nofile beschränkt die Anzahl der geöffneten Dateien, die ein Container verwenden kann. Auf Fargate ist die nofile-Standardeinstellung für die weiche Grenze 65535 und die harte Grenze 65535. Sie können die Werte beider Grenzwerte auf bis zu 1048576 festlegen. Weitere Informationen finden Sie unter Aufgabenressourcenlimits.

Für diesen Parameter muss Ihre Docker Remote API Version 1.18 oder höher in Ihrer Container-Instance verwenden.

Anmerkung

Dieser Parameter wird für Windows-Container nicht unterstützt.

"ulimits": [ { "name": "core"|"cpu"|"data"|"fsize"|"locks"|"memlock"|"msgqueue"|"nice"|"nofile"|"nproc"|"rss"|"rtprio"|"rttime"|"sigpending"|"stack", "softLimit": integer, "hardLimit": integer } ... ]
name

Typ: Zeichenfolge

Zulässige Werte: "core" | "cpu" | "data" | "fsize" | "locks" | "memlock" | "msgqueue" | "nice" | "nofile" | "nproc" | "rss" | "rtprio" | "rttime" | "sigpending" | "stack"

Erforderlich: Ja, wenn ulimits verwendet werden

Der type des ulimit-Werts.

hardLimit

Typ: Ganzzahl

Erforderlich: Ja, wenn ulimits verwendet werden

Das harte Limit für den ulimit-Typ. Der Wert kann je nach Wert in Byte, Sekunden oder als Anzahl angegeben werden. type ulimit

softLimit

Typ: Ganzzahl

Erforderlich: Ja, wenn ulimits verwendet werden

Das weiche Limit für den ulimit-Typ. Der Wert kann je nach Wert in Byte, Sekunden oder als Anzahl angegeben ulimit werden. type

Docker-Bezeichnungen

dockerLabels

Typ: Abbildung einer Zeichenfolge auf eine Zeichenfolge

Erforderlich: Nein

Eine Schlüssel-/Wertzuordnung von Bezeichnungen, die dem Container hinzugefügt werden sollen. Dieser Parameter ist dem Labels Befehl docker create-container und der --label Option docker run zugeordnet.

Für diesen Parameter muss Ihre Docker Remote API Version 1.18 oder höher in Ihrer Container-Instance verwenden.

"dockerLabels": {"string": "string" ...}

Andere Parameter für die Containerdefinition

Die folgenden Parameter für die Containerdefinition können beim Registrieren von Aufgabendefinitionen in der Amazon-ECS-Konsole mit der Option Configure via JSON (Über JSON konfigurieren) verwendet werden. Weitere Informationen finden Sie unter Erstellen einer Amazon ECS-Aufgabendefinition mithilfe der Konsole.

Linux-Parameter

linuxParameters

Typ: LinuxParameters Objekt

Erforderlich: Nein

Linux-spezifische Optionen, die auf den Container angewendet werden, z. B. KernelCapabilities

Anmerkung

Dieser Parameter wird nicht unterstützt für Windows Behälter.

"linuxParameters": { "capabilities": { "add": ["string", ...], "drop": ["string", ...] } }
capabilities

Typ: KernelCapabilities Objekt

Erforderlich: Nein

Das Tool Linux Funktionen für den Container, die aus der Standardkonfiguration entfernt wurden, bereitgestellt von Docker. Für weitere Informationen zu diesen Linux Funktionen finden Sie auf der Linux-Handbuchseite capabilities (7).

add

Typ: Zeichenfolgen-Array

Zulässige Werte: "SYS_PTRACE"

Erforderlich: Nein

Das Tool Linux Funktionen, die der Container zur Standardkonfiguration hinzufügen kann, die bereitgestellt wird von Docker. Dieser Parameter ist dem CapAdd Befehl docker create-container und der --cap-add Option docker run zugeordnet.

drop

Typ: Zeichenfolgen-Array

Zulässige Werte: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"

Erforderlich: Nein

Das Tool Linux Funktionen, die der Container aus der Standardkonfiguration entfernen kann, bereitgestellt von Docker. Dieser Parameter ist dem CapDrop Befehl docker create-container und der --cap-drop Option docker run zugeordnet.

devices

Alle Host-Geräte, die dem Container zur Verfügung gestellt werden sollen. Dieser Parameter ist dem Devices Befehl docker create-container und der --device Option docker run zugeordnet.

Anmerkung

Der devices Parameter wird nicht unterstützt, wenn Sie den Starttyp Fargate verwenden.

Typ: Array von Device-Objekten

Erforderlich: Nein

hostPath

Der Gerätepfad auf der Hostcontainer-Instance.

Typ: Zeichenfolge

Erforderlich: Ja

containerPath

Der Pfad im Container, der dem Hostgerät verfügbar gemacht werden soll.

Typ: Zeichenfolge

Erforderlich: Nein

permissions

Die expliziten Berechtigungen, die dem Container für das Gerät bereitgestellt werden sollen. Standardmäßig hat der Container Berechtigungen für read, writeund mknod auf dem Gerät.

Typ: Zeichenfolgen-Array

Zulässige Werte: read | write | mknod

initProcessEnabled

Führen Sie einen init-Prozess innerhalb des Containers aus, der Signalen weiterleitet und Prozesse aufnimmt. Dieser Parameter ist der --init Option zum Ausführen von Docker zugeordnet.

Für diesen Parameter muss Ihre Docker Remote API Version 1.25 oder höher in Ihrer Container-Instance verwenden.

maxSwap

Dies wird für Aufgaben, die auf Fargate ausgeführt werden, nicht unterstützt.

Die Gesamtmenge des Auslagerungsspeichers (in MiB), den ein Container verwenden kann. Dieser Parameter wird in die --memory-swap Option to Docker Run übersetzt, wobei der Wert die Summe aus dem Container-Speicher plus dem maxSwap Wert ist.

Wenn als maxSwap-Wert 0 angegeben wird, verwendet der Container keine Auslagerung. Zulässige Werte sind 0 oder eine beliebige positive Ganzzahl. Wenn der Parameter maxSwap weggelassen wird, verwendet der Container die Swap-Konfiguration für die Container-Instance, auf der er ausgeführt wird. Es muss ein Wert für maxSwap festgelegt werden, damit der Parameter swappiness verwendet werden kann.

sharedMemorySize

Der Wert für die Größe des /dev/shm-Volumes (in MiB). Dieser Parameter ist der --shm-size Option zum Ausführen von Docker zugeordnet.

Anmerkung

Wenn Sie Aufgaben verwenden, die den Starttyp Fargate nutzen, wird der Parameter sharedMemorySize nicht unterstützt.

Typ: Ganzzahl

tmpfs

Der Containerpfad, die Mount-Optionen und die maximale Größe (in MiB) des tmpfs einhängen. Dieser Parameter ist der --tmpfs Option zum Ausführen von Docker zugeordnet.

Anmerkung

Wenn Sie Aufgaben verwenden, die den Starttyp Fargate nutzen, wird der Parameter tmpfs nicht unterstützt.

Typ: Array von Tmpfs-Objekten

Erforderlich: Nein

containerPath

Der absolute Dateipfad, in dem tmpfs das Volume soll gemountet werden.

Typ: Zeichenfolge

Erforderlich: Ja

mountOptions

Die Liste von tmpfs Optionen zum Einhängen von Volumes.

Typ: Zeichenfolgen-Array

Erforderlich: Nein

Zulässige Werte: "defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev" | "nodev" | "exec" | "noexec" | "sync" | "async" | "dirsync" | "remount" | "mand" | "nomand" | "atime" | "noatime" | "diratime" | "nodiratime" | "bind" | "rbind" | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared" | "slave" | "rslave" | "relatime" | "norelatime" | "strictatime" | "nostrictatime" | "mode" | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol"

size

Die maximale Größe (in MiB) der tmpfs Volumen.

Typ: Ganzzahl

Erforderlich: Ja

Container-Abhängigkeit

dependsOn

Typ: Array von ContainerDependency-Objekten

Erforderlich: Nein

Die für das Startup und Herunterfahren des Containers definierten Abhängigkeiten. Ein Container kann mehrere Abhängigkeiten enthalten. Wenn eine Abhängigkeit für das Startup und das Herunterfahren des Containers definiert ist, ist sie reserviert. Ein Beispiel finden Sie unter Container-Abhängigkeit.

Anmerkung

Wenn ein Container keine Abhängigkeitsbeschränkung erfüllt oder ein Timeout vor dem Erfüllen der Einschränkung erfüllt, führt Amazon ECS abhängige Container nicht in den nächsten Zustand.

Dieser Parameter setzt voraus, dass die Aufgabe oder der Dienst die Plattformversion 1.3.0 oder höher verwendet (Linux) oder 1.0.0 (Windows).

"dependsOn": [ { "containerName": "string", "condition": "string" } ]
containerName

Typ: Zeichenfolge

Erforderlich: Ja

Der Container-Name, der die angegebene Bedingung erfüllen muss.

condition

Typ: Zeichenfolge

Erforderlich: Ja

Die Abhängigkeitsbedingung des Containers. Der folgenden Tabelle sind die verfügbaren Bedingungen und deren Verhalten zu entnehmen:

  • START – Diese Bedingung emuliert das heutige Verhalten von Links und Volumes. Die Bedingung überprüft, ob ein abhängiger Container gestartet wurde, bevor das Starten anderer Container zugelassen wird.

  • COMPLETE – Diese Bedingung überprüft, ob ein abhängiger Container vollständig ausgeführt (beendet) wurde, bevor das Starten anderer Container zugelassen wird. Dies kann für nicht benötigte Container hilfreich sein, die ein Skript ausführen und dann beendet werden. Diese Bedingung kann nicht für einen essentiellen Container festgelegt werden.

  • SUCCESS – Diese Bedingung ist mit COMPLETE identisch, erfordert aber auch, dass der Container mit dem Status zero beendet wird. Diese Bedingung kann nicht für einen essentiellen Container festgelegt werden.

  • HEALTHY – Diese Bedingung überprüft, ob der abhängige Container seine Zustandsprüfung bestanden hat, bevor das Starten anderer Container zugelassen wird. Dies setzt voraus, das für den abhängigen Container Zustandsprüfungen in der Aufgabendefinition konfiguriert wurden. Diese Bedingung wird nur beim Startup der Aufgabe bestätigt.

Container-Timeouts

startTimeout

Typ: Ganzzahl

Erforderlich: Nein

Beispielwerte: 120

Zeitdauer (in Sekunden), die gewartet wird, bevor die Auflösung von Abhängigkeiten für einen Container aufgegeben wird.

Angenommen, Sie geben zwei Container in einer Aufgabendefinition an und containerA ist abhängig davon, dass containerB den Status COMPLETE, SUCCESS oder HEALTHY erreicht. Wenn ein startTimeout-Wert für containerB angegeben ist und es den gewünschten Status nicht innerhalb dieses Zeitraums erreicht, wird containerA nicht gestartet.

Anmerkung

Wenn ein Container keine Abhängigkeitsbeschränkung erfüllt oder ein Timeout vor dem Erfüllen der Einschränkung erfüllt, führt Amazon ECS abhängige Container nicht in den nächsten Zustand.

Dieser Parameter setzt voraus, dass die Aufgabe oder der Dienst die Plattformversion 1.3.0 oder höher verwendet (Linux). Der Maximalwert beträgt 120 Sekunden.

stopTimeout

Typ: Ganzzahl

Erforderlich: Nein

Beispielwerte: 120

Dauer (in Sekunden), die gewartet werden soll, bevor der Container zwangsweise beendet wird, wenn er nicht normal beendet wird.

Dieser Parameter setzt voraus, dass die Aufgabe oder der Dienst die Plattformversion 1.3.0 oder höher verwendet (Linux). Wenn der Parameter nicht angegeben ist, wird der Standardwert von 30 Sekunden verwendet. Der Höchstwert beträgt 120 Sekunden.

Systemkontrollen

systemControls

Typ: SystemControl Objekt

Erforderlich: Nein

Eine Liste von Namespace-Kernelparametern, die im Container festgelegt werden sollen. Dieser Parameter ist dem Befehl docker create-container und der --sysctl Option docker run zugeordnet. Sysctls Beispielsweise können Sie die net.ipv4.tcp_keepalive_time-Einstellung konfigurieren, um Verbindungen mit einer längeren Lebensdauer aufrechtzuerhalten.

Wir empfehlen nicht, netzwerkbezogene systemControls-Parameter für mehrere Container in einer einzelnen Aufgabe festzulegen, die auch entweder den awsvpc- oder host-Netzwerkmodus verwendet. Dies hat die folgenden Nachteile:

  • Wenn Sie einen Wert systemControls für einen Container festlegen, gilt er für alle Container in der Aufgabe. Wenn Sie unterschiedliche systemControls für mehrere Container innerhalb einer einzelnen Aufgabe festlegen, werden die systemControls des zuletzt gestarteten Containers für alle Container übernommen.

Wenn Sie einen IPC-Ressourcen-Namespace für die Container in der Aufgabe einrichten, gelten folgende Bedingungen für Ihre Systemsteuerungen. Weitere Informationen finden Sie unter IPC-Modus.

  • Für Aufgaben, die den IPC-Modus host verwenden, wird der IPC-Namespace systemControls nicht unterstützt.

  • Für Aufgaben, die den IPC-Modus task verwenden, gelten die Werte des IPC-Namespace systemControls für alle Container innerhalb einer Aufgabe.

Anmerkung

Dieser Parameter wird für Windows-Container nicht unterstützt.

Anmerkung

Dieser Parameter wird nur für Aufgaben unterstützt, die auf AWS Fargate gehostet werden, wenn die Aufgaben die Plattformversion 1.4.0 oder höher (Linux) verwenden. Dies wird für Windows-Container auf Fargate nicht unterstützt.

"systemControls": [ { "namespace":"string", "value":"string" } ]
namespace

Typ: Zeichenfolge

Erforderlich: Nein

Der Namespace-Kernelparameter, value für den ein Wert gesetzt werden soll.

Gültige IPC-Namespace-Werte: "kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced" und Sysctls, die mit "fs.mqueue.*" beginnen

Gültige Netzwerk-Namespace-Werte: Sysctls die beginnen mit. "net.*" Auf Fargate werden nur Namespaces akzeptiertSysctls, die innerhalb des Containers existieren.

Alle diese Werte werden von Fargate unterstützt.

value

Typ: Zeichenfolge

Erforderlich: Nein

Der Wert für den Namespace-Kernelparameter, der in angegeben ist. namespace

Interactive

interactive

Typ: Boolesch

Erforderlich: Nein

Wenn dieser Parameter true ist, können Sie Container-Anwendungen bereitstellen, für die stdin oder tty zugeordnet werden muss. Dieser Parameter ist dem OpenStdin Befehl docker create-container und der --interactive Option docker run zugeordnet.

Der Standardwert ist false.

Pseudo-Terminal

pseudoTerminal

Typ: Boolesch

Erforderlich: Nein

Wenn dieser Parameter true lautet, wird ein TTY zugeordnet. Dieser Parameter ist dem Tty Befehl docker create-container und der --tty Option docker run zugeordnet.

Der Standardwert ist false.

Der Name des Elastic-Inference-Beschleunigers

Die Ressourcenanforderung des Elastic-Inference-Beschleunigers für Ihre Aufgabendefinition.

Anmerkung

Amazon Elastic Inference (EI) ist für Kunden nicht mehr verfügbar.

Die folgenden Parameter sind in einer Aufgabendefinition zulässig:

deviceName

Typ: Zeichenfolge

Erforderlich: Ja

Der Gerätename des Elastic Inference-Beschleunigers. Der deviceName muss auch in einer Containerdefinition referenziert werden, siehe Elastic Inference accelerator.

deviceType

Typ: Zeichenfolge

Erforderlich: Ja

Der zu verwendende Elastic-Inference-Beschleuniger.

Proxykonfiguration

proxyConfiguration

Typ: ProxyConfiguration Objekt

Erforderlich: Nein

Die Konfigurationsdetails für den App Mesh-Proxy.

Anmerkung

Dieser Parameter wird für Windows-Container nicht unterstützt.

"proxyConfiguration": { "type": "APPMESH", "containerName": "string", "properties": [ { "name": "string", "value": "string" } ] }
type

Typ: Zeichenfolge

Gültige Werte: APPMESH

Erforderlich: Nein

Der Proxy-Typ. Der einzige unterstützte Wert ist APPMESH.

containerName

Typ: Zeichenfolge

Erforderlich: Ja

Der Name des Containers, der als App Mesh-Proxy dient.

properties

Typ: Array von KeyValuePair-Objekten

Erforderlich: Nein

Der dem Container Network Interface (CNI)-Plug-In bereitzustellende Satz von Netzwerkkonfigurationsparametern, die als Schlüssel-Wert-Paare angegeben werden.

  • IgnoredUID – (Erforderlich) Die Benutzer-ID (UID) des Proxy-Containers gemäß der Definition durch den user-Parameter in einer Containerdefinition. Dadurch wird sichergestellt, dass der Proxy eigenen Datenverkehr ignoriert. Wenn IgnoredGID angegeben wird, kann dieses Feld leer sein.

  • IgnoredGID – (Erforderlich) Die Gruppen-ID (GID) des Proxy-Containers gemäß der Definition durch den user-Parameter in einer Containerdefinition. Dadurch wird sichergestellt, dass der Proxy eigenen Datenverkehr ignoriert. Wenn IgnoredUID angegeben wird, kann dieses Feld leer sein.

  • AppPorts – (Erforderlich) Die Liste der Ports, welche die Anwendung verwendet. Der Netzwerkdatenverkehr zu diesen Ports wird an den ProxyIngressPort und den ProxyEgressPort weitergeleitet.

  • ProxyIngressPort – (Erforderlich) Gibt den Port an, an den eingehender Datenverkehr zu den AppPorts geleitet wird.

  • ProxyEgressPort – (Erforderlich) Gibt den Port an, an den ausgehender Datenverkehr zu den AppPorts geleitet wird.

  • EgressIgnoredPorts – (Erforderlich) Der ausgehende Datenverkehr zu diesen angegebenen Ports wird ignoriert und nicht an den ProxyEgressPort umgeleitet. Es kann sich um eine leere Liste handeln.

  • EgressIgnoredIPs – (Erforderlich) Der ausgehende Datenverkehr zu diesen angegebenen IP-Adressen wird ignoriert und nicht an den ProxyEgressPort umgeleitet. Es kann sich um eine leere Liste handeln.

name

Typ: Zeichenfolge

Erforderlich: Nein

Der Name des Schlüssel-Wert-Paares.

value

Typ: Zeichenfolge

Erforderlich: Nein

Der Wert des Schlüssel-Wert-Paares.

Datenträger

Wenn Sie eine Aufgabendefinition registrieren, können Sie optional eine Liste von Volumes angeben, die an die Docker Daemon auf einer Container-Instance, auf den dann andere Container auf derselben Container-Instance zugreifen können.

Im Folgenden werden die Daten-Volume-Typen aufgeführt, die verwendet werden können:

  • Amazon EBS-Volumes — Bietet kostengünstigen, langlebigen und leistungsstarken Blockspeicher für datenintensive containerisierte Workloads. Sie können 1 Amazon EBS-Volume pro Amazon ECS-Aufgabe anhängen, wenn Sie eine eigenständige Aufgabe ausführen oder einen Service erstellen oder aktualisieren. Amazon EBS-Volumes werden für Linux-Aufgaben unterstützt, die auf Fargate gehostet werden. Weitere Informationen finden Sie unter Verwenden Sie Amazon EBS-Volumes mit Amazon ECS.

  • Amazon EFS Volumes: Bietet einen einfachen, skalierbaren und persistenten Dateispeicher für die Verwendung mit Amazon-ECS-Aufgaben. Mit Amazon EFS ist die Speicherkapazität elastisch. Sie wird automatisch erweitert oder verkleinert, wenn Sie Dateien hinzufügen oder entfernen. Ihren Anwendungen steht der Speicherplatz zur Verfügung, den sie benötigen, und zwar genau dann, wenn sie ihn benötigen. Amazon EFS-Volumes werden für Aufgaben unterstützt, die auf Fargate gehostet werden. Weitere Informationen finden Sie unter Verwenden Sie Amazon EFS-Volumes mit Amazon ECS.

  • FSx für Windows-Dateiserver-Volumes — Stellt vollständig verwaltete Microsoft Windows-Dateiserver bereit. Diese Dateiserver werden von einem Windows-Dateisystem unterstützt. Wenn Sie FSx for Windows File Server zusammen mit Amazon ECS verwenden, können Sie Ihre Windows-Aufgaben mit persistentem, verteiltem, gemeinsam genutztem und statischem Dateispeicher bereitstellen. Weitere Informationen finden Sie unter FSx Für Windows-Dateiserver-Volumes mit Amazon ECS verwenden.

    Windows-Container auf Fargate unterstützen diese Option nicht.

  • Bind-Mounts — Eine Datei oder ein Verzeichnis auf dem Host-Computer, das in einen Container gemountet ist. Host-Volumes mit Bind-Mount werden bei der Ausführung von Aufgaben unterstützt. Um Bind-Mount-Host-Volumes zu verwenden, geben Sie einen host und optionalen sourcePath-Wert in Ihrer Aufgabendefinition an.

Weitere Informationen finden Sie unter Speicheroptionen für Amazon ECS-Aufgaben.

Die folgenden Parameter sind in einer Containerdefinition zulässig.

name

Typ: Zeichenfolge

Erforderlich: Nein

Der Name des Volumes. Bis zu 255 Buchstaben (Groß- und Kleinbuchstaben), Zahlen, Bindestriche () und Unterstriche (-) sind zulässig. _ Auf diesen Namen wird im sourceVolume Parameter des Container-Definitionsobjekts verwiesen. mountPoints

host

Erforderlich: Nein

Der host Parameter wird verwendet, um den Lebenszyklus des Bind-Mounts mit der EC2 Host-Amazon-Instance und nicht mit der Aufgabe und dem Speicherort zu verknüpfen. Wenn der Parameter host leer ist, weist der Docker-Daemon einen Hostpfad für Ihr Daten-Volume zu, es wird aber nicht gewährleistet, dass die Daten beibehalten werden, nachdem die damit verknüpften Container nicht mehr ausgeführt werden.

Windows-Container können ganze Verzeichnisse auf dem gleichen Laufwerk wie $env:ProgramData mounten.

Anmerkung

Der sourcePath Parameter wird nur unterstützt, wenn Aufgaben verwendet werden, die auf EC2 Amazon-Instances gehostet werden.

sourcePath

Typ: Zeichenfolge

Erforderlich: Nein

Wenn der host Parameter verwendet wird, geben Sie a an, sourcePath um den Pfad auf der EC2 Host-Amazon-Instance zu deklarieren, der dem Container präsentiert wird. Wenn dieser Parameter leer ist, weist der Docker-Daemon einen Host-Pfad für Sie zu. Wenn der host Parameter einen sourcePath Dateispeicherort enthält, bleibt das Datenvolumen am angegebenen Speicherort auf der EC2 Host-Amazon-Instance bestehen, bis Sie es manuell löschen. Wenn der sourcePath Wert auf der EC2 Host-Amazon-Instance nicht vorhanden ist, erstellt ihn der Docker-Daemon. Wenn der Speicherort nicht vorhanden ist, wird der Inhalt des Quellpfadordners exportiert.

configuredAtLaunch

Typ: Boolesch

Erforderlich: Nein

Gibt an, ob ein Volume beim Start konfigurierbar ist. Wenn diese Option auf gesetzt isttrue, können Sie das Volume konfigurieren, wenn Sie eine eigenständige Aufgabe ausführen oder wenn Sie einen Dienst erstellen oder aktualisieren. Wenn diese Option auf gesetzt isttrue, können Sie in der Aufgabendefinition keine andere Volume-Konfiguration angeben. Dieser Parameter muss auf gesetzt werden, true um ein Amazon EBS-Volume für das Anhängen an eine Aufgabe zu konfigurieren. Wenn Sie configuredAtLaunch die Volume-Konfiguration auf die Startphase festlegen true und diese auf die Startphase verschieben, können Sie Aufgabendefinitionen erstellen, die nicht auf einen Volume-Typ oder auf bestimmte Volume-Einstellungen beschränkt sind. Dadurch kann Ihre Aufgabendefinition in verschiedenen Ausführungsumgebungen wiederverwendet werden. Weitere Informationen finden Sie unter Amazon-EBS-Volumes.

dockerVolumeConfiguration

Typ: DockerVolumeConfigurationObjekt

Erforderlich: Nein

Dieser Parameter wird nur bei der Verwendung von Docker-Volumes angegeben. Docker-Volumes werden nur unterstützt, wenn Aufgaben auf EC2 Instanzen ausgeführt werden. Windows-Container unterstützen nur die Verwendung des local Treibers. Um Bind-Mounts zu verwenden, geben Sie stattdessen einen host an.

scope

Typ: Zeichenfolge

Zulässige Werte: task | shared

Erforderlich: Nein

Der Bereich für das Docker-Volume, der den Lebenszyklus 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.

autoprovision

Typ: Boolesch

Standardwert: false

Erforderlich: Nein

Wenn dieser Wert true lautet, wird das Docker-Volume erstellt, wenn es nicht bereits vorhanden ist. Dieses Feld wird nur verwendet, wenn scope shared Wenn der scope isttask, muss dieser Parameter weggelassen werden.

driver

Typ: Zeichenfolge

Erforderlich: Nein

Der zu verwendende Docker-Volume-Treiber. Der Treiberwert muss mit dem von Docker bereitgestellten Treibernamen übereinstimmen, da dieser Name für die Aufgabenplatzierung verwendet wird. Wenn der Treiber mithilfe der Docker-Plug-in-CLI installiert wurde, verwenden Sie ihn, docker plugin ls um den Treibernamen von Ihrer Container-Instance abzurufen. Wenn der Treiber mit einer anderen Methode installiert wurde, verwenden Sie die Docker-Plug-in-Erkennung, um den Treibernamen abzurufen.

driverOpts

Typ: Zeichenfolge

Erforderlich: Nein

Eine Übersicht mit Treiberspezifischen Optionen für den Docker-Treiber, die durchgespielt werden sollen. Dieser Parameter ist dem Abschnitt Create a volume von Docker zugeordnet. DriverOpts

labels

Typ: Zeichenfolge

Erforderlich: Nein

Benutzerdefinierte Metadaten, die Ihrem Docker-Volume hinzugefügt werden sollen.

efsVolumeConfiguration

Typ: EFSVolumeKonfigurationsobjekt

Erforderlich: Nein

Dieser Parameter wird nur bei der Verwendung von Amazon EFS-Volumes angegeben.

fileSystemId

Typ: Zeichenfolge

Erforderlich: Ja

Die zu verwendende Amazon EFS-Dateisystem-ID.

rootDirectory

Typ: Zeichenfolge

Erforderlich: Nein

Das Verzeichnis im Amazon EFS-Dateisystem, das als Stammverzeichnis im Host bereitgestellt werden soll. Wenn dieser Parameter weggelassen wird, wird der Stamm des Amazon EFS-Volumes verwendet. Die Angabe von / hat denselben Effekt wie das Weglassen dieses Parameters.

Wichtig

Wenn in der ein EFS-Zugriffspunkt angegeben istauthorizationConfig, muss der Stammverzeichnisparameter entweder weggelassen oder auf gesetzt werden/, wodurch der auf dem EFS-Zugriffspunkt festgelegte Pfad erzwungen wird.

transitEncryption

Typ: Zeichenfolge

Zulässige Werte: ENABLED | DISABLED

Erforderlich: Nein

Gibt an, ob die Verschlüsselung für Amazon-EFS-Daten während der Übertragung zwischen dem Amazon-ECS-Host und dem Amazon-EFS-Server aktiviert werden soll oder nicht. Wenn die Amazon-EFS-IAM-Autorisierung verwendet wird, muss die Transit-Verschlüsselung aktiviert sein. Wenn dieser Parameter nicht angegeben ist, wird der Standardwert DISABLED verwendet. Weitere Informationen finden Sie unter Verschlüsseln von Daten während der Übertragung im Benutzerhandbuch für Amazon Elastic File System.

transitEncryptionPort

Typ: Ganzzahl

Erforderlich: Nein

Der zu verwendende Port zum Senden verschlüsselter Daten zwischen dem Amazon-ECS-Host und dem Amazon EFS-Server. Wenn Sie keinen Port für die Übertragungsverschlüsselung angeben, verwendet die Aufgabe die Portauswahlstrategie, die der Amazon EFS-Mount-Helper verwendet. Weitere Informationen finden Sie unter EFS-Mount-Helfer im Benutzerhandbuch für Amazon Elastic File System.

authorizationConfig

Typ: EFSAuthorizationConfig-Objekt

Erforderlich: Nein

Die Autorisierungskonfigurationsdetails für das Amazon EFS-Dateisystem.

accessPointId

Typ: Zeichenfolge

Erforderlich: Nein

Die zu verwendende Zugriffspunkt-ID. Wenn ein Zugriffspunkt angegeben ist, efsVolumeConfiguration muss der Stammverzeichniswert in der entweder weggelassen oder auf gesetzt werden/, wodurch der auf dem EFS-Zugriffspunkt festgelegte Pfad erzwungen wird. Wenn ein Zugriffspunkt verwendet wird, muss in EFSVolumeConfiguration die Transitverschlüsselung aktiviert sein. Weitere Informationen finden Sie unter Arbeiten mit Amazon EFS-Zugriffspunkten im Amazon Elastic File System-Benutzerhandbuch.

iam

Typ: Zeichenfolge

Zulässige Werte: ENABLED | DISABLED

Erforderlich: Nein

Gibt an, ob die Amazon ECS-Aufgaben-IAM-Rolle verwendet werden soll, die in einer Aufgabendefinition definiert ist, wenn das Amazon EFS-Dateisystem bereitgestellt wird. Wenn diese Option aktiviert ist, muss die Transit-Verschlüsselung in EFSVolumeConfiguration aktiviert sein. Wenn dieser Parameter nicht angegeben ist, wird der Standardwert DISABLED verwendet. Weitere Informationen finden Sie unter IAM-Rollen für Aufgaben.

FSxWindowsFileServerVolumeConfiguration

Typ: Objekt FSxWindowsFileServerVolumeConfiguration

Erforderlich: Ja

Dieser Parameter wird angegeben, wenn Sie ein Dateisystem von Amazon FSx für Windows File Server zum Speichern von Aufgaben verwenden.

fileSystemId

Typ: Zeichenfolge

Erforderlich: Ja

Die FSx zu verwendende Dateisystem-ID für den Windows-Dateiserver.

rootDirectory

Typ: Zeichenfolge

Erforderlich: Ja

Das Verzeichnis innerhalb des Dateisystems FSx für Windows File Server, das als Stammverzeichnis auf dem Host bereitgestellt werden soll.

authorizationConfig
credentialsParameter

Typ: Zeichenfolge

Erforderlich: Ja

Die Optionen für Autorisierungsanmeldeinformationen.

Optionen:
domain

Typ: Zeichenfolge

Erforderlich: Ja

Ein vollqualifizierter Domänenname, der von einem Verzeichnis AWS Directory Service for Microsoft Active Directory(AWS Managed Microsoft AD) oder einem selbst gehosteten EC2 Active Directory gehostet wird.

Tags

Wenn Sie eine Aufgabendefinition registrieren, können Sie optional Metadatentags angeben, die auf die Aufgabendefinition angewendet werden. Mithilfe von Tags können Sie Ihre Aufgabendefinition kategorisieren und organisieren. Jedes Tag (Markierung) besteht aus einem Schlüssel und einem optionalen Wert. Sie können beide definieren. Weitere Informationen finden Sie unter Markieren von Amazon ECS-Ressourcen.

Wichtig

Fügen Sie keine personenbezogenen Daten (Personally Identifiable Information, PII) oder andere vertrauliche Informationen in Tags hinzu. Tags sind für viele AWS Dienste zugänglich, auch für die Abrechnung. Tags sind nicht für private oder vertrauliche Daten gedacht.

Die folgenden Parameter sind in einem Tag-Objekt zulässig.

key

Typ: Zeichenfolge

Erforderlich: Nein

Ein Teil eines Schlüssel-Wert-Paares, aus dem ein Tag besteht. Ein Schlüssel ist eine allgemeine Bezeichnung, die wie eine Kategorie für spezifischere Tag-Werte fungiert.

value

Typ: Zeichenfolge

Erforderlich: Nein

Der optionale Teil eines Schlüssel-Wert-Paares, aus dem ein Tag besteht. Ein Wert fungiert als Deskriptor in einer Tag-Kategorie (Schlüssel).

Andere Parameter der Aufgabendefinition

Die folgenden Parameter für die Aufgabendefinition können beim Registrieren von Aufgabendefinitionen in der Amazon-ECS-Konsole mit der Option Configure via JSON (Über JSON konfigurieren) verwendet werden. Weitere Informationen finden Sie unter Erstellen einer Amazon ECS-Aufgabendefinition mithilfe der Konsole.

Flüchtiger Speicher

ephemeralStorage

Typ: EphemeralStorage Objekt

Erforderlich: Nein

Die Menge des flüchtigen Speichers (in GB), der für die Aufgabe zugewiesen werden soll. Dieser Parameter wird verwendet, um die Gesamtmenge des flüchtigen Speichers über den Standardbetrag hinaus für Aufgaben zu erweitern, die auf AWS Fargate gehostet werden. Weitere Informationen finden Sie unter Bind-Mounts mit Amazon ECS verwenden.

Anmerkung

Dieser Parameter wird nur in der Plattformversion 1.4.0 oder höher (Linux) 1.0.0 oder höher (Windows) unterstützt.

IPC-Modus

ipcMode

Dies wird für Aufgaben, die auf Fargate ausgeführt werden, nicht unterstützt.

Typ: Zeichenfolge

Erforderlich: Nein

Der IPC-Ressourcen-Namespace, der für die Container in der Aufgabe verwendet werden soll. Die gültigen Werte sind 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 EC2 Host-Amazon-Instance. Wenn task angegeben ist, teilen sich alle Container innerhalb der angegebenen Aufgabe die gleichen IPC-Ressourcen. Wenn none angegeben ist, dann sind die IPC-Ressourcen innerhalb der Container einer Aufgabe privat und werden nicht mit anderen Containern einer Aufgabe oder der Container-Instance geteilt. 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.

Wenn der IPC-Modus host verwendet wird, ist das Risiko einer unerwünschten Exposition des IPC-Namespace erhöht.

Wenn Sie im Namespace bezogene Kernelparameter mit systemControls für die Container in der Aufgabe festlegen, gilt Folgendes für Ihren IPC-Ressourcen-Namespace.

  • Für Aufgaben, die den IPC-Modus host verwenden, werden IPC-Namespace bezogene systemControls nicht unterstützt.

  • Für Aufgaben, die den IPC-Modus task verwenden, gelten IPC-Namespace bezogene systemControls für alle Container innerhalb einer Aufgabe.

Anmerkung

Dieser Parameter wird für Windows-Container oder -Aufgaben mit dem Starttyp Fargate nicht unterstützt.

PID-Modus

pidMode

Typ: Zeichenfolge

Zulässige Werte: host | task

Erforderlich: Nein

Der Prozess-Namespace, der für die Container in der Aufgabe verwendet werden soll. Die gültigen Werte sind host und task. Bei Linux-Containern ist der einzig gültige Wert. task Für die Überwachung von Beiwagen benötigt pidMode möglicherweise Informationen über andere Container, die in der gleichen Aufgabe laufen.

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.

Anmerkung

Dieser Parameter wird nur für Aufgaben unterstützt, die auf AWS Fargate gehostet werden, wenn die Aufgaben die Plattformversion 1.4.0 oder höher (Linux) verwenden. Dies wird für Windows-Container auf Fargate nicht unterstützt.

Fehlerinjektion

enableFaultInjection

Typ: Boolesch

Zulässige Werte: true | false

Erforderlich: Nein

Wenn dieser Parameter in der Nutzlast einer Aufgabe auf gesetzt isttrue, akzeptieren Amazon ECS und Fargate Fault-Injection-Anfragen von den Containern der Aufgabe. Dieser Parameter ist standardmäßig auf false festgelegt.