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 eineNetworkConfiguration
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. Derawsvpc
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 denawsvpc
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
undWINDOWS_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
undARM64
.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 setzen
ARM64
. 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 oder1 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 oder3 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.
Themen
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 dielinks
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
oder mitrepository-url
/image
:tag
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 demrepository-url
/image
@digest
Image
Befehl docker create-container und demIMAGE
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 derregistry/repository@digest
-Namenskonvention angegeben werden (beispielsweiseaws_account_id
.dkr.ecr.region
.amazonaws.com/
odermy-web-app
:latest
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 demMemory
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 demMemoryReservation
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
odermemoryReservation
in einer Container-Definition angeben. Wenn Sie beide angeben, mussmemory
größer alsmemoryReservation
sein. Wenn SiememoryReservation
angeben, wird dieser Wert von den verfügbaren Speicherressourcen für die Container-Instance abgezogen, auf der der Container platziert ist. Andernfalls wird der Wertmemory
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 festenmemory
-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, nurcontainerPort
fest. DashostPort
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 nichtlocalhost
. 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
containerPort
hostPort
,protocol
) sind dem Befehl docker create-container und der--publish
Option docker run zugeordnet.PortBindings
Wenn der Netzwerkmodus einer Aufgabendefinition aufhost
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 werdenDie 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 PortscontainerPort
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 importMappings
-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 vonhostPortRange
ist wie folgt festgelegt:-
Für Container in einer Aufgabe mit dem
awsvpc
-Netzwerkmodus wirdhostPort
auf denselben Wert wiecontainerPort
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 von49153–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 unter32768
nicht zum flüchtigen Port-Bereich.Die reservierten Standardports sind
22
für SSH, die Docker Ports2375
und und2376
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 derremainingResources
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
undudp
. Der Standardwert isttcp
.Wichtig
Nur
tcp
wird für Service Connect unterstützt. Denken Sie daran, dasstcp
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 werdenDer 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.
Themen
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 MinimumrestartAttemptPeriod
von 60 Sekunden und ein MaximumrestartAttemptPeriod
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 mitCMD-SHELL
, um den Befehl mit der Standard-Shell des Containers auszuführen. Ist nichts davon angegeben, wirdCMD
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 demCpuShares
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 als
0
. 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 dervalue
mit demdeviceName
für einenInferenceAccelerator
ü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 alstrue
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 Parameteressential
eines Containers alsfalse
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 vonentryPoint
haben, aktualisieren Sie Ihren Container-Agenten oder geben Sie Ihre Befehle und Argumente stattdessen alscommand
-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 demCOMMAND
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 Containersder Docker Remote API und der Option --workdir
für die docker runzu. "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 FormatVARIABLE=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 wirdDer Name der Umgebungsvariable.
value
-
Typ: Zeichenfolge
Erforderlich: ja, wenn
environment
verwendet wirdDer 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
links
-
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 aufbridge
gesetzt ist. Dasname:internalName
Konstrukt ist analog zu inname: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 Parameterhostname
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 werdenDer Hostname, der im Eintrag
/etc/hosts
verwendet werden soll. ipAddress
-
Typ: Zeichenfolge
Erforderlich: Ja, wenn
extraHosts
verwendet werdenDie 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 werdenDer Name des zu mountenden Volumes.
containerPath
-
Typ: Zeichenfolge
Erforderlich: Ja, wenn
mountPoints
verwendet werdenDer 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 Wertfalse
, dann verfügt der Container über Schreibzugriff auf das Volume. Der Standardwert istfalse
.Behalten Sie für Aufgaben, die auf EC2 Instanzen ausgeführt werden, auf denen das Windows-Betriebssystem ausgeführt wird, den Standardwert von bei
false
.
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 wirdDer 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 Wertfalse
, dann verfügt der Container über Schreibzugriff auf das Volume. Der Standardwert istfalse
.
"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 wirdDer 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
awslogs
splunk
, 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 Sieawslogs-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
undawslogs-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
undawslogs-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 wurde
logDriver
. 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 diestdout
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 Optionmax-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 imawslogs
Container-Protokolltreiber. Mithilfe der
defaultLogDriverMode
Kontoeinstellungen können Sie einen Standardmode
für alle Container in AWS-Region einem bestimmten Container festlegen. Wenn Sie diemode
Option nicht in der Kontoeinstellung angebenlogConfiguration
oder die Kontoeinstellung konfigurieren, verwendet Amazon ECS standardmäßig denblocking
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 denblocking
Modus nach dieser Änderung weiter zu verwenden:Stellen Sie die
mode
Option in Ihren ContainerdefinitionenlogConfiguration
als einblocking
.Stellen Sie die
defaultLogDriverMode
Kontoeinstellung auf einblocking
.
max-buffer-size
-
Erforderlich: Nein
Standardwert:
1m
Wenn der
non-blocking
-Modus verwendet wird, steuert diemax-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 asplunk-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 dielog-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 mitregion
und einen Namen für den Protokollstream mitdelivery_stream
angeben.Wenn Sie Protokolle nach Amazon Kinesis Data Streams exportieren, können Sie ein AWS-Region mit
region
und einen Datenstream-Namen mitstream
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_region
Suppress_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_size
upload_timeout
, unduse_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:::
. Weitere Informationen finden Sie unter Beispiel für eine Amazon ECS-Aufgabendefinition: Protokolle weiterleiten an FireLens.amzn-s3-demo-bucket
/fluent.conf|filepath"} type
-
Typ: Zeichenfolge
Erforderlich: Ja
Der zu verwendende Protokollrouter. Die gültigen Werte sind
fluentd
undfluentbit
.
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 vondockerSecurityOptions
zu verwenden. Die maximale Anzahl von ist 1. ARNsEs gibt zwei Formate für jeden ARN.
- credentialspecdomainless:MyARN
-
Sie verwenden
credentialspecdomainless:MyARN
, umCredSpec
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
, umCredSpec
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 demUlimits
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 Ressourcenlimitnofile
beschränkt die Anzahl der geöffneten Dateien, die ein Container verwenden kann. Auf Fargate ist dienofile
-Standardeinstellung für die weiche Grenze65535
und die harte Grenze65535
. Sie können die Werte beider Grenzwerte auf bis zu1048576
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 werdenDer
type
desulimit
-Werts. hardLimit
-
Typ: Ganzzahl
Erforderlich: Ja, wenn
ulimits
verwendet werdenDas 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 werdenDas weiche Limit für den
ulimit
-Typ. Der Wert kann je nach Wert in Byte, Sekunden oder als Anzahl angegebenulimit
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.
Themen
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
,write
undmknod
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 demmaxSwap
Wert ist.Wenn als
maxSwap
-Wert0
angegeben wird, verwendet der Container keine Auslagerung. Zulässige Werte sind0
oder eine beliebige positive Ganzzahl. Wenn der ParametermaxSwap
weggelassen wird, verwendet der Container die Swap-Konfiguration für die Container-Instance, auf der er ausgeführt wird. Es muss ein Wert fürmaxSwap
festgelegt werden, damit der Parameterswappiness
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) oder1.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 mitCOMPLETE
identisch, erfordert aber auch, dass der Container mit dem Statuszero
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, dasscontainerB
den StatusCOMPLETE
,SUCCESS
oderHEALTHY
erreicht. Wenn einstartTimeout
-Wert fürcontainerB
angegeben ist und es den gewünschten Status nicht innerhalb dieses Zeitraums erreicht, wirdcontainerA
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 dienet.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 denawsvpc
- oderhost
-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 unterschiedlichesystemControls
für mehrere Container innerhalb einer einzelnen Aufgabe festlegen, werden diesystemControls
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-NamespacesystemControls
nicht unterstützt. -
Für Aufgaben, die den IPC-Modus
task
verwenden, gelten die Werte des IPC-NamespacesystemControls
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"
undSysctls
, die mit"fs.mqueue.*"
beginnenGü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 diestdin
odertty
zugeordnet werden muss. Dieser Parameter ist demOpenStdin
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 demTty
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 denuser
-Parameter in einer Containerdefinition. Dadurch wird sichergestellt, dass der Proxy eigenen Datenverkehr ignoriert. WennIgnoredGID
angegeben wird, kann dieses Feld leer sein. -
IgnoredGID
– (Erforderlich) Die Gruppen-ID (GID) des Proxy-Containers gemäß der Definition durch denuser
-Parameter in einer Containerdefinition. Dadurch wird sichergestellt, dass der Proxy eigenen Datenverkehr ignoriert. WennIgnoredUID
angegeben wird, kann dieses Feld leer sein. -
AppPorts
– (Erforderlich) Die Liste der Ports, welche die Anwendung verwendet. Der Netzwerkdatenverkehr zu diesen Ports wird an denProxyIngressPort
und denProxyEgressPort
weitergeleitet. -
ProxyIngressPort
– (Erforderlich) Gibt den Port an, an den eingehender Datenverkehr zu denAppPorts
geleitet wird. -
ProxyEgressPort
– (Erforderlich) Gibt den Port an, an den ausgehender Datenverkehr zu denAppPorts
geleitet wird. -
EgressIgnoredPorts
– (Erforderlich) Der ausgehende Datenverkehr zu diesen angegebenen Ports wird ignoriert und nicht an denProxyEgressPort
umgeleitet. Es kann sich um eine leere Liste handeln. -
EgressIgnoredIPs
– (Erforderlich) Der ausgehende Datenverkehr zu diesen angegebenen IP-Adressen wird ignoriert und nicht an denProxyEgressPort
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 optionalensourcePath
-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 imsourceVolume
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 Parameterhost
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 derhost
Parameter einensourcePath
Dateispeicherort enthält, bleibt das Datenvolumen am angegebenen Speicherort auf der EC2 Host-Amazon-Instance bestehen, bis Sie es manuell löschen. Wenn dersourcePath
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 ist
true
, 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 SieconfiguredAtLaunch
die Volume-Konfiguration auf die Startphase festlegentrue
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 einenhost
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 alsshared
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, wennscope
shared
Wenn derscope
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 ist
authorizationConfig
, 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 inEFSVolumeConfiguration
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 StandardwertDISABLED
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:
Amazon-Ressourcenname (ARN) eines AWS Secrets ManagerGeheimnisses.
ARN eines AWS Systems ManagerParameters.
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
odernone
. Wenn angegeben, teilenhost
sich alle Container, die sich innerhalb der Aufgaben befinden, die denhost
IPC-Modus auf derselben Container-Instance spezifiziert haben, dieselben IPC-Ressourcen mit der EC2 Host-Amazon-Instance. Wenntask
angegeben ist, teilen sich alle Container innerhalb der angegebenen Aufgabe die gleichen IPC-Ressourcen. Wennnone
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 bezogenesystemControls
nicht unterstützt. -
Für Aufgaben, die den IPC-Modus
task
verwenden, gelten IPC-Namespace bezogenesystemControls
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
undtask
. Bei Linux-Containern ist der einzig gültige Wert.task
Für die Überwachung von Beiwagen benötigtpidMode
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 ist
true
, akzeptieren Amazon ECS und Fargate Fault-Injection-Anfragen von den Containern der Aufgabe. Dieser Parameter ist standardmäßig auffalse
festgelegt.