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 Amazon EC2
Aufgabendefinitionen sind in verschiedene Teile unterteilt: die Aufgabenfamilie, die AWS Identity and Access Management (IAM-) Aufgabenrolle, den Netzwerkmodus, Containerdefinitionen, Volumen, Einschränkungen bei der Aufgabenplatzierung und Kapazität. Die Familien- und Container-Definitionen sind in einer Aufgabendefinition obligatorisch. Im Gegensatz dazu sind Aufgabenrolle, Netzwerkmodus, Volumes, Aufgabenplatzierungseinschränkungen 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 Amazon. EC2
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.
Capacity (Kapazität)
Wenn Sie eine Aufgabendefinition registrieren, können Sie die Kapazität angeben, anhand der Amazon ECS die Aufgabendefinition validieren soll. Eine Client-Ausnahme wird zurückgegeben, wenn die Aufgabendefinition nicht anhand der angegebenen Kompatibilitäten validiert.
Der folgende Parameter ist in einer Aufgabendefinition zulässig.
requiresCompatibilities-
Typ: Zeichenfolgen-Array
Erforderlich: Nein
Zulässige Werte:
EC2Die Kapazität, anhand der die Aufgabendefinition validiert wird. Dadurch wird eine Überprüfung eingeleitet, um sicherzustellen, dass alle in der Aufgabendefinition verwendeten Parameter den Anforderungen von Amazon EC2 entsprechen.
-Rolle für Aufgabe
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 Aufgaben-IAM-Rolle für Amazon ECS.
IAM-Rollen für Aufgaben unter Windows erfordern, dass die Option
-EnableTaskIAMRolebeim Starten des Amazon-ECS-optimierten Windows Server-AMI festgelegt ist. Ihre Container müssen außerdem bestimmten Konfigurationscode ausführen, damit dieses Feature verwendet werden kann. Weitere Informationen finden Sie unter Zusätzliche Konfiguration der Amazon EC2 Windows-Instance.
-Rolle für die Aufgabenausführung
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: Nein
Der Docker-Netzwerkmodus, der für die Container in der Aufgabe verwendet werden soll. Für Amazon ECS-Aufgaben, die auf Amazon EC2 Linux-Instances gehostet werden, sind die gültigen Werte
nonebridge,awsvpc, undhost. Wenn kein Netzwerkmodus angegeben ist, ist der Standard-Netzwerkmodusbridge. Für Amazon ECS-Aufgaben, die auf Amazon EC2 Windows-Instances gehostet werden, sind die gültigen Wertedefault, undawsvpc. Wenn kein Netzwerkmodus angegeben ist, wird derdefaultNetzwerkmodus verwendet.Wenn der Netzwerkmodus auf
nonefestgelegt ist, verfügen die Container der Aufgabe über keine externe Konnektivität und Port-Zuweisungen können nicht in der Container-Definition angegeben werden.Wenn der Netzwerkmodus aktiviert ist
bridge, verwendet die Aufgabe das integrierte virtuelle Netzwerk von Docker unter Linux, das in jeder EC2 Amazon-Instance ausgeführt wird, die die Aufgabe hostet. Das integrierte virtuelle Netzwerk unter Linux verwendet denbridgeDocker-Netzwerktreiber.Wenn der Netzwerkmodus aktiviert ist
host, verwendet die Aufgabe das Netzwerk des Hosts, wodurch das integrierte virtuelle Netzwerk von Docker umgangen wird, indem Container-Ports direkt der ENI der EC2 Amazon-Instance zugeordnet werden, die die Aufgabe hostet. Dynamische Portzuordnungen können in diesem Netzwerkmodus nicht verwendet werden. Ein Container in einer Aufgabendefinition, der diesen Modus verwendet, muss eine bestimmtehostPort-Nummer angeben. Eine Portnummer auf einem Host kann nicht für mehrere Aufgaben verwendet werden. Daher können Sie nicht mehrere Aufgaben derselben Aufgabendefinition auf einer einzigen EC2 Amazon-Instance ausführen.Wichtig
Wenn Sie Aufgaben im Netzwerkmodus
hostausführen, sollten Sie aus Sicherheitsgründen Container nicht über den Root-Benutzer (UID 0) ausführen. Verwenden Sie als bewährte Sicherheitsmethode immer einen Nicht-Root-Benutzer.Für den Netzwerkmodus
awsvpcwird die Aufgabe einer Elastic-Network-Schnittstelle zugeordnet und Sie müssen eineNetworkConfigurationangeben, 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 EC2.Wenn der Netzwerkmodus aktiviert ist
default, verwendet die Aufgabe das integrierte virtuelle Netzwerk von Docker unter Windows, das in jeder EC2 Amazon-Instance ausgeführt wird, die die Aufgabe hostet. Das integrierte virtuelle Netzwerk unter Windows verwendet dennatDocker-Netzwerktreiber.Die
awsvpcNetzwerkmodihostund bieten die höchste Netzwerkleistung für Container, da sie den EC2 Amazon-Netzwerkstapel verwenden. Für die Netzwerkmodihostundawsvpcsind die freigegebenen Container-Ports direkt auf den entsprechenden Host-Port (für den Netzwerkmodushost) oder den angehängten Elastic-Network-Schnittstellenanschluss (für den Netzwerkmodusawsvpc) abgebildet. Aus diesem Grund können Sie keine dynamischen Host-Port-Zuordnungen nutzen.Der zulässige Netzwerkmodus hängt vom Betriebssystem der zugrunde liegenden EC2 Instance ab. Unter Linux können beliebige Netzwerkmodi verwendet werden. Falls Windows, können Modi
defaultundawsvpcverwendet werden.
Laufzeit-Plattform
operatingSystemFamily-
Typ: Zeichenfolge
Required: Conditional
Standard: LINUX
Wenn Sie eine Aufgabendefinition anmelden, geben Sie die Betriebssystemfamilie an.
Die gültigen Werte sind
LINUX,WINDOWS_SERVER_2025_FULL,WINDOWS_SERVER_2025_CORE,WINDOWS_SERVER_2022_CORE,WINDOWS_SERVER_2022_FULL,WINDOWS_SERVER_2019_FULLundWINDOWS_SERVER_2019_CORE,WINDOWS_SERVER_2016_FULL,WINDOWS_SERVER_2004_COREundWINDOWS_SERVER_20H2_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
Wenn Sie eine Aufgabendefinition registrieren, können Sie die CPU-Architektur angeben. Die gültigen Werte sind
X86_64undARM64. Wenn Sie keinen Wert angeben, versucht Amazon ECS, Aufgaben auf der verfügbaren CPU-Architektur basierend auf der Konfiguration des Kapazitätsanbieters zu platzieren. Um sicherzustellen, dass Aufgaben auf einer bestimmten CPU-Architektur platziert werden, geben SiecpuArchitecturein der Aufgabendefinition einen Wert für an.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
ARM64festlegen. Weitere Informationen finden Sie unter Amazon-ECS-Aufgabendefinitionen für 64-Bit-ARM-Workloads.
Größe der Aufgabe
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 EC2 Amazon-Instances gehostet werden, sind diese Felder optional.
Anmerkung
CPU- und Speicherparameter auf Aufgabenebene werden für Windows-Container ignoriert. Es wird empfohlen, für Windows-Container Ressourcen auf Container-Ebene festzulegen.
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
1024in CPU-Einheiten oder1 vCPUin v angebenCPUs. Wenn die Aufgabendefinition registriert ist, wird ein vCPU-Wert in eine Ganzzahl umgewandelt, die die CPU-Einheiten angibt.Dies ist ein optionales Feld. Wenn in Ihrem Cluster keine registrierten Container-Instances mit den angeforderten verfügbaren CPU-Einheiten vorhanden sind, schlägt die Aufgabe fehl. Unterstützte Werte liegen zwischen
0.125192v CPUs und CPUs v.
memory-
Typ: Zeichenfolge
Required: Conditional
Anmerkung
Dieser Parameter wird für Windows-Container nicht unterstützt.
Die harte Arbeitsspeichergrenze, die für die Aufgabe zur Verfügung steht. Sie können Speicherwerte in der Aufgabendefinition als Zeichenfolge in Mebibyte (MiB) oder Gigabyte (GB) angeben. Sie können beispielsweise einen Speicherwert entweder als
3072in MiB oder3 GBin GB angeben. Wenn die Aufgabendefinition registriert ist, wird ein GB-Wert in eine Ganzzahl umgewandelt, die die MiB angibt.Dieses Feld ist optional und ein beliebiger Wert kann verwendet werden. Wenn ein Speicherwert auf Aufgabenebene angegeben wird, ist der Speicherwert auf Container-Ebene optional. Wenn Ihr Cluster keine registrierten Container-Instances mit dem erforderlichen Arbeitsspeicher hat, schlägt die Aufgabe fehl. Sie können Ihre Ressourcennutzung maximieren, indem Sie Ihren Aufgaben so viel Arbeitsspeicher wie möglich für einen bestimmten Instance-Typ zuweisen. Weitere Informationen finden Sie unter Arbeitsspeicher für Linux-Container-Instances von Amazon ECS reservieren.
Containerdefinitionen
Wenn Sie eine Aufgabendefinition registrieren, müssen Sie eine Liste der Containerdefinitionen angeben, die an den Docker-Daemon auf einer Container-Instance übergeben werden. 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), Zahlen, Bindestriche und Unterstriche sind zulässig. Wenn Sie mehrere Container in einer Aufgabedefinition verknüpfen, kann der
nameeines Containers in dielinkseines 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 den Docker-Daemon übergeben. Images in der Docker Hub-Registrierung sind standardmäßig verfügbar. Sie können entweder mit
oder mitrepository-url/image:tagauch andere Repositorys angeben. Bis zu 255 Buchstaben (Groß- und Kleinbuchstaben), Ziffern, Bindestriche, Unterstriche, Doppelpunkte, Punkte und Schrägstriche sind zulässig. Dieser Parameter ist im Docker-Befehl create-container und imrepository-url/image@digestIMAGE-Parameter des Docker-Befehls run der OptionImagezugeordnet.-
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, verwendet der Amazon ECS-Container-Agent das
latestTag, um das angegebene Bild abzurufen. -
Nachfolgende Aktualisierungen eines Repository-Images werden nicht an bereits ausgeführte Aufgaben weitergegeben.
-
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:latestaws_account_id.dkr.ecr.region.amazonaws.com/).my-web-app@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE -
Images in offiziellen Repositorys in Docker Hub verwenden einen einzelnen Namen (z. B.
ubuntuodermongo). -
Images in anderen Repositorys in 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|disabledErforderlich: Nein
Gibt an, ob Amazon ECS das in der Container-Definition angegebene Container-Image-Tag in einen Image-Digest auflöst. Das Standardverhalten ist
enabled. Wenn Sie den Wert für einen Container aufdisabledfestlegen, 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 zu r Auflösung von Container-Images finden Sie unter Auflö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 im Docker-Befehl create-container der OptionMemoryund die Option--memoryist der Docker-Ausführung zugeordnet.Sie müssen entweder einen Speicherwert auf Aufgabenebene oder einen Speicherwert auf Container-Ebene angeben. Wenn Sie sowohl einen Wert auf Containerebene
memoryundmemoryReservationangeben, muss der Wertmemorygrößer sein als der WertmemoryReservation. Wenn SiememoryReservationangeben, wird dieser Wert von den verfügbaren Speicherressourcen für die Container-Instance abgezogen, auf der der Container platziert ist. Andernfalls wird der Wertmemoryverwendet.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 Arbeitsspeicher für Linux-Container-Instances von Amazon ECS reservieren.
memoryReservation-
Typ: Ganzzahl
Erforderlich: Nein
Die weiche Arbeitsspeichergrenze (in MiB) für die Reservierung für den Container. Wenn der Systemspeicher strittig ist, versucht Docker den Arbeitsspeicher des Containers innerhalb der weichen Grenze zu halten. Ihr Container kann jedoch bei Bedarf mehr Speicher verwenden. Der Container kann bis zu der mit dem Parameter
memoryangegebenen harten Grenze (falls zutreffend) oder bis zum gesamten verfügbaren Speicher der Container-Instance verwendet werden, je nachdem, was zuerst eintritt. Dieser Parameter ist im Docker-Befehl create-container der OptionMemoryReservationund die Option--memory-reservationist der Docker-Ausführung zugeordnet.Wenn kein Speicherwert auf Aufgabenebene angegeben ist, müssen Sie eine Ganzzahl ungleich Null für einen oder beide Werte von
memoryodermemoryReservationin einer Container-Definition angeben. Wenn Sie beide angeben, mussmemorygrößer alsmemoryReservationsein. Wenn SiememoryReservationangeben, wird dieser Wert von den verfügbaren Speicherressourcen für die Container-Instance abgezogen, auf der der Container platziert ist. Andernfalls wird der Wertmemoryverwendet.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
memoryReservationvon 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 Arbeitsspeicher für Linux-Container-Instances von Amazon ECS reservieren.
Port-Zuordnungen
portMappings-
Typ: Objekt-Array
Erforderlich: Nein
Port-Zuordnungen machen die Netzwerk-Ports Ihres Containers der Außenwelt zugänglich. Dadurch können Clients auf Ihre Anwendung zugreifen. Port-Zuordnungen werden auch für die Kommunikation zwischen Containern innerhalb derselben Aufgabe verwendet.
Legen Sie für Aufgabendefinitionen, die den Netzwerkmodus
awsvpcverwenden, nurcontainerPortfest. DerhostPortwird 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
NetNATund 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 (inklusive
containerPort,hostPort,protocol) werden im Docker-Befehl create-container der OptionPortBindingszugeordnet, und die Option--publishwird dem Docker-Befehl run zugeordnet. Wenn der Netzwerkmodus einer Aufgabendefinition aufhostfestgelegt 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
RUNNINGerreicht 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
networkBindingsder 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
portMappingsverwendet 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 Ports mitcontainerPortan.Angenommen, Sie verwenden Container in einer Aufgabe mit den EC2 Kapazitätsanbietern und geben einen Container-Port und keinen Host-Port an. Dann erhält Ihr Container automatisch einen Host-Port im flüchtigen Port-Bereich. Weitere Informationen finden Sie unter
hostPort. Port-Zuweisungen, die auf diese Weise automatisch zugewiesen werden, werden beim Kontingent der 100 reservierten Ports für eine Container-Instance nicht mitgezählt. 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
containerPortRangeangeben :-
Sie müssen entweder den
bridge-Netzwerkmodus oder denawsvpc-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
hostPortRangean. Der Wert vonhostPortRangeist wie folgt festgelegt:-
Für Container in einer Aufgabe mit dem
awsvpc-Netzwerkmodus wirdhostPortauf denselben Wert wiecontainerPortfestgelegt. Dies ist eine statische Zuordnungsstrategie. -
Für Container in einer Aufgabe mit dem
bridge-Netzwerkmodus findet der Amazon-ECS-Agent offene Host-Ports aus dem flüchtigen Standardbereich und übergibt sie an Docker, um sie an die Container-Ports zu binden.
-
-
Gültige Werte für
containerPortRangeliegen 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, den Docker-Proxy in der Konfigurationsdatei des Docker-Daemons zu deaktivieren, wenn Sie eine große Anzahl von Ports haben.
Weitere Informationen finden Sie in Ausgabe #11185
unter GitHub. Informationen zum Deaktivieren des Docker-Proxy in der Docker-Daemon-Konfigurationsdatei finden Sie unter Docker-Daemon im Amazon-ECS-Entwicklerhandbuch.
Sie können DescribeTasks aufrufen, um die
hostPortRangeanzuzeigen, 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. Dieser wird von Docker zugewiesen und vom Amazon-ECS-Agenten bereitgestellt.
hostPort-
Typ: Ganzzahl
Erforderlich: Nein
Die Port-Nummer auf der Container-Instance, die für Ihren Container reserviert werden soll.
Sie können einen nicht reservierten Host-Port für Ihre Container-Port-Zuordnung angeben. Dies wird als statische Host-Port-Zuordnung bezeichnet. Sie können den
hostPortauch weglassen (oder auf0setzen), während Sie einencontainerPortangeben. Ihr Container erhält automatisch einen Port im kurzlebigen Portbereich für Ihr Container-Instance-Betriebssystem und Ihre Docker-Version. Dies wird als dynamische Host-Port-Zuordnung bezeichnet.Der standardmäßige flüchtige Port-Bereich für Docker-Version 1.6.0 und später wird in der Instance unter
/proc/sys/net/ipv4/ip_local_port_rangeaufgelistet. Wenn dieser Kernel-Parameter nicht verfügbar ist, wird der standardmäßige flüchtige Port-Bereich von49153–65535verwendet. 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 unter32768nicht zum flüchtigen Port-Bereich.Die standardmäßigen reservierten Ports sind
22für SSH, die Docker-Ports,2375und2376und der Amazon-ECS-Container-Agenten-Port51678-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 unterremainingResourcesder 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 für die Konfiguration von Service Connect und VPC Lattice in einem Service
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 Services verwenden.
Weitere Informationen finden Sie unter Verwenden Sie Service Connect, um Amazon ECS-Services mit Kurznamen zu verbinden.
Im folgenden Beispiel werden beide erforderlichen Felder 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
tcpundudp. Der Standardwert isttcp.Wichtig
Nur
tcpwird für Service Connect unterstützt. Denken Sie daran, dasstcpimpliziert ist, wenn dieses Feld nicht festgelegt ist.Wichtig
UDP-Unterstützung ist nur auf Container-Instances verfügbar, die mit Version 1.2.0 des Amazon-ECS-Container-Agenten (z. B.
amzn-ami-2015.03.c-amazon-ecs-optimized-AMI) oder höher gestartet wurden – oder mit Container-Agenten, die auf Version 1.3.0 oder höher aktualisiert wurden. Die neueste Version für Ihren Container-Agenten finden Sie unter Überprüfen des Amazon-ECS-Container-Agenten.
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
repositoryCredentialsverwendet 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-Managementkonsole, 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 Parameter für Container-Definitionen bieten erweiterte Funktionen für den Docker-Befehl run, der verwendet wird, um Container auf Ihren Amazon-ECS-Container-Instances zu starten.
Themen
Richtlinie neu starten
restartPolicy-
Die Container-Neustart-Richtlinie und die zugehörigen Konfigurationsparameter. Wenn Sie eine Neustart-Richtlinie für einen Container aktivieren, kann Amazon ECS den Container neu starten, ohne dass die Aufgabe ersetzt werden muss. Weitere Informationen finden Sie unter Einzelne Container in Amazon-ECS-Aufgaben mit Richtlinien für den Container-Neustart neu starten.
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 bis zu 50 Container-Exit-Codes angeben. Standardmäßig ignoriert Amazon ECS keine Exit-Codes.
restartAttemptPeriod-
Typ: Ganzzahl
Erforderlich: Nein
Ein Zeitraum (in Sekunden), den der Container ausgeführt werden muss, bevor ein Neustart versucht werden kann. Ein Container kann nur einmal alle
restartAttemptPeriodSekunden 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 eine Minimum-restartAttemptPeriodvon 60 Sekunden und eine Maximum-restartAttemptPeriodvon 1 800 Sekunden angeben. Standardmäßig muss ein Container 300 Sekunden lang ausgeführt werden, bevor er neu gestartet werden kann.
Gesundheitscheck
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
CMDbeginnen, um die Befehlsargumente direkt auszuführen, oder mitCMD-SHELL, um den Befehl mit der Standard-Shell des Containers auszuführen. Ist nichts davon angegeben, wirdCMDverwendet.Verwenden Sie beim Registrieren einer Aufgabendefinition in eine durch Kommas getrennte Liste von Befehlen. AWS-Managementkonsole 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 1Wenn Sie eine Aufgabendefinition mithilfe des AWS-Managementkonsole 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 ist 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 Wiederholungen.
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 zwischen 0 und 300 Sekunden angeben. Standardmäßig ist
startPerioddeaktiviert.Wenn eine Zustandsprüfung innerhalb der
startPerioderfolgreich 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 im Abschnitt Container erstellender Option CpuShareszugeordnet.Anmerkung
Sie können die Anzahl der CPU-Einheiten bestimmen, die für jeden EC2 Amazon-Instance-Typ verfügbar sind. Multiplizieren Sie dazu die Anzahl von v, die für diesen Instance-Typ auf der EC2Amazon-Instance-Detailseite CPUs
aufgeführt sind, mit 1.024. Linux-Container teilen sich nicht zugewiesene CPU-Einheiten mit anderen Containern auf der Container-Instance im gleichen Verhältnis wie die ihnen 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.
Auf Linux-Container-Instances verwendet der Docker-Daemon auf der Container-Instance den CPU-Wert, um das relative CPU-Anteilsverhältnis für die laufenden Container zu berechnen. Der kleinste gültige CPU-Freigabewert, den der Linux-Kernel zulässt, ist 2 und der maximale gültige CPU-Freigabewert, den der Linux-Kernel zulässt, ist 262 144. Der CPU-Parameter ist jedoch nicht erforderlich und Sie können CPU-Werte unter 2 und höher als 262 144 in Ihren Container-Definitionen verwenden. Bei CPU-Werten unter 2 (einschließlich 0) und höher als 262 144 variiert das Verhalten je nach Version Ihres Amazon-ECS-Container-Agenten:
-
Agent-Versionen <= 1.1.0: Null-CPU-Werte werden an Docker als 0 übergeben, die von Docker dann in 1 024 CPU-Anteile konvertiert werden. CPU-Werte von 1 werden an Docker als 1 übergeben, die der Linux-Kernel in zwei CPU-Freigaben konvertiert.
-
Agent-Versionen >= 1.2.0: Null-CPU-Werte und CPU-Werte von 1 werden an Docker als zwei CPU-Anteile übergeben.
-
Agentenversionen >= 1.84.0: CPU-Werte über 256 vCPUs werden als 256 an Docker übergeben, was 262 144 CPU-Anteilen entspricht.
Auf Windows-Container-Instances wird das CPU-Kontingent als absolutes Kontingent durchgesetzt. Windows-Container haben nur Zugriff auf die in der Aufgabendefinition festgelegte Menge an CPU. Ein Nullwert oder ein CPU-Wert von Null wird an Docker als
0übergeben. Windows interpretiert diesen Wert dann als 1 % einer CPU.Weitere Beispiele finden Sie unter So verwaltet Amazon ECS CPU- und Arbeitsspeicher-Ressourcen
. -
gpu-
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.Anmerkung
Dieser Parameter wird für Windows-Container nicht unterstützt.
Elastic Inference accelerator-
Typ: ResourceRequirement Objekt
Erforderlich: Nein
Für den
InferenceAccelerator-Typ stimmt dervaluemit demdeviceNamefür einenInferenceAcceleratorüberein, der in einer Aufgabendefinition angegeben ist. Weitere Informationen finden Sie unter Name des Elastic Inference Accelerators (veraltet).Anmerkung
Dieser Parameter wird für Windows-Container nicht unterstützt.
essential-
Typ: Boolesch
Erforderlich: Nein
Nehmen wir an, der
essential-Parameter eines Containers ist alstruegekennzeichnet 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 Parameteressentialeines Containers alsfalsegekennzeichnet 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 vonentryPointhaben, 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 im Befehl create-container der Option
Cmdund derCOMMAND-Parameter ist der Docker-Ausführung 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
WorkingDirim Bereich Erstellen eines Containersder Docker Remote API und der Option --workdirfür die docker runzu. "workingDirectory": "string" environmentFiles-
Typ: Objekt-Array
Erforderlich: Nein
Eine Liste von Dateien, die die Umgebungsvariablen enthalten, die an einen Container übergeben werden sollen. Dieser Parameter ist im Docker-Befehl run der Option
--env-filezugeordnet.Wenn FIPS aktiviert ist, werden Bucket-Namen, die Punkte (.) enthalten, (zum Beispiel amzn-s3-demo-bucket1.name.example) nicht unterstützt. Punkte (.) im Bucket-Namen verhindern, dass die Aufgabe gestartet wird, da der Agent die Umgebungsvariablendatei nicht aus Amazon S3 abrufen kann.
Dies ist für Windows-Container nicht verfügbar.
Sie können bis zu 10 Umgebungsdateien angeben. Die Datei muss eine
.envDateierweiterung 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 Eine einzelne Umgebungsvariable an einen Amazon-ECS-Container übergeben.
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 im Docker-Befehl create-container der Option
Envund die Option--envist der Docker-Ausführung zugeordnet.Wichtig
Die Verwendung von Klartext-Umgebungsvariablen für sensitive Informationen (wie etwa Zugangsdaten) wird nicht empfohlen.
name-
Typ: Zeichenfolge
Erforderlich: ja, wenn
environmentverwendet wirdDer Name der Umgebungsvariable.
value-
Typ: Zeichenfolge
Erforderlich: ja, wenn
environmentverwendet 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 Sensible Daten an einen Amazon-ECS-Container übergeben.
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-
Typ: Boolesch
Erforderlich: Nein
Wenn dieser Parameter den Wert „true“ aufweist, ist die Netzwerkfunktion innerhalb des Containers deaktiviert.
Anmerkung
Dieser Parameter wird nicht für Windows-Container oder Aufgaben unterstützt, die den
awsvpc-Netzwerkmodus verwenden.Der Standardwert ist
false."disableNetworking": true|false links-
Typ: Zeichenfolgen-Array
Erforderlich: Nein
Über den Parameter
linkkönnen Container miteinander kommunizieren, ohne dass Port-Zuweisungen nötig sind. Dieser Parameter wird nur unterstützt, wenn der Netzwerkmodus einer Aufgabendefinition aufbridgegesetzt ist. Das Konstruktname:internalNameist analog zuname:aliasin Docker-Verbindungen. Bis zu 255 Buchstaben (Groß- und Kleinbuchstaben), Ziffern, Bindestriche und Unterstriche sind zulässig.Anmerkung
Dieser Parameter wird nicht für Windows-Container oder Aufgaben unterstützt, die den
awsvpc-Netzwerkmodus verwenden.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 im Docker-Befehl create-container der Option
Hostnameund die Option--hostnameist der Docker-Ausführung zugeordnet.Anmerkung
Wenn Sie den Netzwerkmodus
awsvpcverwenden, wird der Parameterhostnamenicht unterstützt."hostname": "string" dnsServers-
Typ: Zeichenfolgen-Array
Erforderlich: Nein
Eine List der DNS-Server, die dem Container bereitgestellt werden.
Anmerkung
Dieser Parameter wird nicht für Windows-Container oder Aufgaben unterstützt, die den
awsvpc-Netzwerkmodus verwenden."dnsServers": ["string", ...] dnsSearchDomains-
Typ: Zeichenfolgen-Array
Erforderlich: Nein
Muster: ^[a-zA-Z0-9-.]{0,253}[a-zA-Z0-9]$
Eine List der DNS-Such-Domains, die dem Container bereitgestellt werden. Dieser Parameter ist im Docker-Befehl create-container der Option
DnsSearchund die Option--dns-searchist der Docker-Ausführung zugeordnet.Anmerkung
Dieser Parameter wird für Windows-Container oder -Aufgaben, die den Netzwerkmodus
awsvpcverwenden, nicht unterstützt."dnsSearchDomains": ["string", ...] extraHosts-
Typ: Objekt-Array
Erforderlich: Nein
Eine Liste der Hostnamen und IP-Adresszuordnungen, die an die Datei
/etc/hostsauf dem Container angefügt werden.Dieser Parameter ist im Docker-Befehl create-container der Option
ExtraHostsund die Option--add-hostist der Docker-Ausführung zugeordnet.Anmerkung
Dieser Parameter wird für Windows-Container oder -Aufgaben, die den Netzwerkmodus
awsvpcverwenden, nicht unterstützt."extraHosts": [ { "hostname": "string", "ipAddress": "string" } ... ]hostname-
Typ: Zeichenfolge
Erforderlich: Ja, wenn
extraHostsverwendet werdenDer Hostname, der im Eintrag
/etc/hostsverwendet werden soll. ipAddress-
Typ: Zeichenfolge
Erforderlich: Ja, wenn
extraHostsverwendet werdenDie IP-Adresse, die im Eintrag
/etc/hostsverwendet 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 ist im Docker-Befehl create-container der Option
ReadonlyRootfsund die Option--read-onlyist der Docker-Ausführung zugeordnet.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 Mounting-Punkte für die Daten-Volumes in Ihrem Container. Dieser Parameter ist in der create-container-Docker-API der Option
Volumeszugeordnet und die Option--volumeist der Docker-Ausführung zugeordnet.Windows-Container können ganze Verzeichnisse auf dem gleichen Laufwerk wie
$env:ProgramDataeinbinden. Windows-Container können keine Verzeichnisse auf einem anderen Laufwerk mounten, und es ist kein laufwerksübergreifender Mounting-Punkt möglich. Sie müssen Mounting-Punkte angeben, um ein Amazon-EBS-Volume direkt an eine Amazon-ECS-Aufgabe anzuhängen.sourceVolume-
Typ: Zeichenfolge
Erforderlich: Ja, wenn
mountPointsverwendet werdenDer Name des einzubindenden Volumes.
containerPath-
Typ: Zeichenfolge
Erforderlich: Ja, wenn
mountPointsverwendet werdenDer Pfad in dem Container, in dem das Volume eingebunden wird.
readOnly-
Typ: Boolesch
Erforderlich: Nein
Wenn dieser Wert
truelautet, 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 das Windows-Betriebssystem ausführen, den Standardwert von
falsebei.
volumesFrom-
Typ: Objekt-Array
Erforderlich: Nein
Die Daten-Volumes, die von einem anderen Container gemountet werden sollen. Dieser Parameter ist im Docker-Befehl create-container der Option
VolumesFromund die Option--volumes-fromist der Docker-Ausführung zugeordnet.sourceContainer-
Typ: Zeichenfolge
Erforderlich: ja, wenn
volumesFromverwendet wirdDer Name des Containers, von dem die Volumes gemountet werden.
readOnly-
Typ: Boolesch
Erforderlich: Nein
Wenn dieser Wert
truelautet, 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: LogConfigurationObjekt
Erforderlich: Nein
Die Angabe der Protokollkonfiguration für den Container.
Beispiele für Aufgabendefinitionen, die eine Protokollkonfiguration verwenden, finden Sie unter Beispiele für Amazon-ECS-Aufgabendefinitionen.
Dieser Parameter ist im Docker-Befehl create-container der Option
LogConfigund die Option--log-driverist der Docker-Ausführung zugeordnet. Standardmäßig verwenden Container den gleichen Protokolltreiber wie der Docker-Daemon. Allerdings kann der Container einen anderen Protokolltreiber als der Docker-Daemon verwenden, indem Sie einen Protokolltreiber mit diesem Parameter in der Container-Definition 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 einen Teil der Protokolltreiber, die für den Docker-Daemon verfügbar sind.
-
Für diesen Parameter muss Ihre Docker Remote API Version 1.18 oder höher in Ihrer Container-Instance verwenden.
-
Der auf einer Container-Instance ausgeführte Amazon-ECS-Container-Agent muss die auf dieser Instance verfügbaren Protokolltreiber mit der Umgebungsvariable
ECS_AVAILABLE_LOGGING_DRIVERSregistrieren, bevor in der Instance platzierte Container diese Protokollkonfigurationsoptionen verwenden können. Weitere Informationen finden Sie unter Konfiguration des Amazon-ECS-Container-Agenten.
"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
logConfigurationverwendet 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,fluentd,gelf,json-file,journald,syslog,splunkundawsfirelens.Weitere Informationen zur Verwendung des
awslogsProtokolltreibers in Aufgabendefinitionen zum Senden Ihrer Container-Logs an CloudWatch Logs finden Sie unterAmazon ECS-Protokolle senden an CloudWatch .Weitere Informationen zur Verwendung des Protokolltreibers
awsfirelensfinden 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 ist Version 1.18 der Docker Remote API oder höher auf Ihrer Container-Instance erforderlich.
options-
Typ: Abbildung einer Zeichenfolge auf eine Zeichenfolge
Erforderlich: Nein
Die key/value Zuordnung 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
awslogsRouter 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-groupzu nutzen versuchen. awslogs-region-
Erforderlich: Ja
Geben Sie an AWS-Region , an
awslogswen 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: Optional
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-idWenn 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-formatundawslogs-multiline-patternkonfigurieren.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-formatebenfalls konfiguriert ist.Sie können nicht sowohl die Optionen
awslogs-datetime-formatundawslogs-multiline-patternkonfigurieren.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|blockingDiese Option definiert den Zustellungsmodus von Protokollnachrichten von dem Container an den mit
logDriverangegebenen Protokolltreiber. Der von Ihnen gewählte Zustellungsmodus wirkt sich auf die Anwendungsverfügbarkeit aus, wenn der Protokollfluss vom Container unterbrochen wird.Wenn Sie den
blocking-Modus verwenden und der Protokollfluss unterbrochen wird, werden Aufrufe von Container-Code zum Schreiben in diestdout- undstderr-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-sizekonfigurierten 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 Kontoeinstellung
defaultLogDriverModekönnen Sie einen Standard-modefür alle Container in einer bestimmten AWS-Region festlegen. Wenn Sie diemode-Option nicht inlogConfigurationangeben oder die Kontoeinstellung konfigurieren, verwendet Amazon ECS standardmäßig dennon-blocking-Modus. Weitere Informationen über die Kontoeinstellung finden Sie unter Standardmodus für den Protokolltreiber.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. Die Gesamtmenge des auf Aufgabenebene zugewiesenen Arbeitsspeichers muss zusätzlich zum Arbeitsspeicher-Puffer des Protokolltreibers größer sein als die für alle Container zugewiesene Menge an Arbeitsspeicher.Anmerkung
Am 25. Juni 2025 änderte Amazon ECS den Standard-Protokolltreibermodus von
blockingaufnon-blocking, um der Verfügbarkeit von Aufgaben Vorrang vor der Protokollierung einzuräumen. Führen Sie einen der folgenden Schritte aus, um denblocking-Modus nach dieser Änderung weiter zu verwenden:Stellen Sie die
mode-Option inlogConfigurationin der Container-Definition alsblockingein.Stellen Sie die Kontoeinstellung
defaultLogDriverModeaufblockingein.
max-buffer-size-
Erforderlich: Nein
Standardwert:
10 mWenn 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 einsplunk-tokenund einesplunk-urlangeben.Wenn Sie den
awsfirelensLog-Router verwenden, um Logs zur Protokollspeicherung und Analyse an ein AWS-Service AWS Partner Network Oder-Ziel weiterzuleiten, können Sie dielog-driver-buffer-limitOption so einstellen, dass die Anzahl der Log-Zeilen begrenzt wird, die im Speicher zwischengespeichert werden, bevor sie an den Log Router-Container gesendet werden. Es kann helfen, ein potenzielles Problem mit dem Verlust von Protokollen zu beheben, da ein hoher Durchsatz dazu führen könnte, dass der Speicher für Puffer innerhalb von Docker ausgeht. Weitere Informationen finden Sie unter Konfiguration von Amazon-ECS-Protokollen für hohen Durchsatz.Andere Optionen, die Sie beim Weiterleiten von Protokollen mithilfe von
awsfirelensangeben können, hängen vom Ziel ab. Wenn Sie Protokolle nach Amazon Data Firehose exportieren, können Sie das AWS-Region mitregionund einen Namen für den Protokollstream mitdelivery_streamangeben.Wenn Sie Protokolle nach Amazon Kinesis Data Streams exportieren, können Sie eine AWS-Region mit
regionund einen Datenstrom-Namen mitstreamangeben.Wenn Sie Protokolle nach Amazon OpenSearch Service exportieren, können Sie Optionen wie
NameHost(OpenSearch Service-Endpunkt ohne Protokoll),Port,Index,Type,Aws_auth,Aws_regionSuppress_Type_Name, und angebentls.Wenn Sie Protokolle nach Amazon S3 exportieren, können Sie den Bucket mit der
bucket-Option angeben. Sie können auchregion,total_file_size,upload_timeoutunduse_put_objectals 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 Sensible Daten an einen Amazon-ECS-Container übergeben.
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 key/value Übersicht der Optionen, die bei der Konfiguration des Log-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 einer Amazon-ECS-Aufgabendefinition: Protokolle an FireLens weiterleiten.amzn-s3-demo-bucket/fluent.conf|filepath"} type-
Typ: Zeichenfolge
Erforderlich: Ja
Der zu verwendende Protokollrouter. Die gültigen Werte sind
fluentdundfluentbit.
Sicherheit
Weitere Informationen zur Container-Sicherheit finden Sie unter Bewährte Methoden für die Sicherheit von Amazon-ECS-Aufgaben und -Containern.
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 vondockerSecurityOptionszu verwenden. Die maximale Anzahl von ist 1. ARNsEs gibt zwei Formate für jeden ARN.
- credentialspecdomainless:MyARN
-
Sie verwenden
credentialspecdomainless:MyARN, umCredSpeceinen 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, umCredSpecfü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
MyARNdurch den ARN in SSM oder Amazon S3.Die
credspecmuss 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. privileged-
Typ: Boolesch
Erforderlich: Nein
Wenn dieser Parameter den Wert „true“ aufweist, erhält der Container erhöhte Berechtigungen auf der Host-Container-Instance (ähnlich wie der
root-Benutzer). Wir raten davon ab, Container mitprivilegedauszuführen. In den meisten Fällen können Sie die genauen Berechtigungen angeben, die Sie benötigen, indem Sie die spezifischen Parameter verwenden, anstattprivilegedzu verwenden.Dieser Parameter ist im Docker-Befehl create-container der Option
Privilegedund die Option--privilegedist der Docker-Ausführung zugeordnet.Anmerkung
Dieser Parameter wird für Windows-Container oder -Aufgaben mit dem Starttyp Fargate nicht unterstützt.
Der Standardwert ist
false."privileged": true|false user-
Typ: Zeichenfolge
Erforderlich: Nein
Der Benutzer, der im Container verwendet werden soll. Dieser Parameter ist im Docker-Befehl create-container der Option
Userund die Option--userist der Docker-Ausführung zugeordnet.Wichtig
Wenn Sie Aufgaben im Netzwerkmodus
hostausfü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
usermit 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" -
dockerSecurityOptions-
Typ: Zeichenfolgen-Array
Gültige Werte: "no-new-privileges" | „AppArmor:Profile“ | „label:
value" | „credentials spec:“CredentialSpecFilePathErforderlich: Nein
Eine Liste von Zeichenfolgen für die Bereitstellung benutzerdefinierter Konfigurationen für mehrere Sicherheitssysteme.
Für Linux-Aufgaben kann dieser Parameter verwendet werden, um auf benutzerdefinierte Labels für mehrschichtige Sicherheitssysteme von SELinux und AppArmor zu verweisen.
Dieser Parameter kann verwendet werden, um auf eine Anmeldeinformations-Spezifikationsdatei zu verweisen, die einen Container für die Active-Directory-Authentifizierung konfiguriert. Weitere Informationen erhalten Sie unter Erfahren Sie, wie Sie g MSAs für EC2 Windows-Container für Amazon ECS verwenden und gMSAFür EC2 Linux Container auf Amazon ECS verwenden.
Dieser Parameter ist im Docker-Befehl create-container der Option
SecurityOptund die Option--security-optist der Docker-Ausführung zugeordnet."dockerSecurityOptions": ["string", ...]Anmerkung
Der auf einer Container-Instance ausgeführte Amazon-ECS-Container-Agent muss mit der Umgebungsvariablen
ECS_SELINUX_CAPABLE=trueoderECS_APPARMOR_CAPABLE=trueregistriert werden, bevor in der Instance platzierte Container diese Sicherheitsoptionen verwenden können. Weitere Informationen finden Sie unter Konfiguration des Amazon-ECS-Container-Agenten.
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 im Docker-Befehl create-container der OptionUlimitsund die Option--ulimitist der Docker-Ausführung zugeordnet.Dieser Parameter erfordert Version 1.18 der Docker Remote API oder höher auf Ihrer Container-Instance.
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
ulimitsverwendet werdenDer
typedesulimit-Werts. hardLimit-
Typ: Ganzzahl
Erforderlich: Ja, wenn
ulimitsverwendet werdenDas harte Limit für den
ulimit-Typ. Der Wert kann je nach demtypedesulimitin Byte, Sekunden oder als Anzahl angegeben werden. softLimit-
Typ: Ganzzahl
Erforderlich: Ja, wenn
ulimitsverwendet werdenDas weiche Limit für den
ulimit-Typ. Der Wert kann je nach demtypedesulimitin Byte, Sekunden oder als Anzahl angegeben werden.
Docker-Bezeichnungen
dockerLabels-
Typ: Abbildung einer Zeichenfolge auf eine Zeichenfolge
Erforderlich: Nein
Eine key/value Karte mit Labels, die dem Container hinzugefügt werden sollen. Dieser Parameter ist im Docker-Befehl create-container der Option
Labelsund die Option--labelist der Docker-Ausführung zugeordnet.Dieser Parameter erfordert Version 1.18 der Docker Remote API oder höher auf Ihrer Container-Instance.
"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 mit der Konsole.
Themen
Linux-Parameter
linuxParameters-
Typ: LinuxParameters Objekt
Erforderlich: Nein
Linux-spezifische Optionen, die auf den Container angewendet werden, wie z. KernelCapabilities
Anmerkung
Dieser Parameter wird für Windows-Container nicht unterstützt.
"linuxParameters": { "capabilities": { "add": ["string", ...], "drop": ["string", ...] } }capabilities-
Typ: KernelCapabilities Objekt
Erforderlich: Nein
Die Linux-Funktionen für den Container, die zur von Docker bereitgestellten Standardkonfiguration hinzugefügt oder daraus entfernt werden. Weitere Informationen zu diesen Linux-Funktionen finden Sie auf der Linux-Handbuchseite Funktionen (7)
. add-
Typ: Zeichenfolgen-Array
Zulässige Werte:
"ALL" | "AUDIT_CONTROL" | "AUDIT_READ" | "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
Die Linux-Funktionen für den Container, die zu der von Docker bereitgestellten Standardkonfiguration hinzugefügt werden sollen. Dieser Parameter ist im Docker-Befehl create-container der Option
CapAddund die Option--cap-addist der Docker-Ausführung zugeordnet. add-
Typ: Zeichenfolgen-Array
Zulässige Werte:
"SYS_PTRACE"Erforderlich: Nein
Die Linux-Funktionen für den Container, die zu der von Docker bereitgestellten Standardkonfiguration hinzugefügt werden sollen. Dieser Parameter ist im Docker-Befehl create-container der Option
CapAddund die Option--cap-addist der Docker-Ausführung 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
Die Linux-Funktionen für den Container, die aus der von Docker bereitgestellten Standardkonfiguration entfernt werden sollen. Dieser Parameter ist im Docker-Befehl create-container der Option
CapDropund die Option--cap-dropist der Docker-Ausführung zugeordnet.
devices-
Alle Host-Geräte, die dem Container zur Verfügung gestellt werden sollen. Dieser Parameter ist im Docker-Befehl create-container der Option
Devicesund die Option--deviceist der Docker-Ausführung zugeordnet.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,writeundmknodauf 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 Option--initfür die Docker-Ausführung zugeordnet.Für diesen Parameter muss Ihre Docker Remote API Version 1.25 oder höher in Ihrer Container-Instance verwenden.
maxSwap-
Die Gesamtmenge des Auslagerungsspeichers (in MiB), den ein Container verwenden kann. Dieser Parameter ist in die Option
--memory-swapzur Docker-Ausführung übersetzt, wobei der Wert die Summe aus dem Container-Speicher und dem WertmaxSwapist.Wenn als
maxSwap-Wert0angegeben wird, verwendet der Container keine Auslagerung. Zulässige Werte sind0oder eine beliebige positive Ganzzahl. Wenn der ParametermaxSwapweggelassen wird, verwendet der Container die Swap-Konfiguration für die Container-Instance, auf der er ausgeführt wird. Es muss ein Wert fürmaxSwapfestgelegt werden, damit der Parameterswappinessverwendet werden kann. sharedMemorySize-
Der Wert für die Größe des
/dev/shm-Volumes (in MiB). Dieser Parameter ist der Option--shm-sizefür die Docker-Ausführung zugeordnet.Typ: Ganzzahl
swappiness-
Auf diese Weise können Sie diesen Parameter verwenden, um Speicherauslagerungsverhalten eines Containers zu optimieren. Ein
swappiness-Wert von0führt dazu, dass kein Auslagern erfolgt, sofern nicht erforderlich. Einswappiness-Wert von100führt dazu, dass Seiten häufig ausgelagert werden. Akzeptierte Werte sind Ganzzahlen zwischen0und100. Wenn Sie keinen Wert angeben, wird der Standardwert60verwendet. Darüber hinaus wird dieser Parameter ignoriert, wenn Sie keinen Wert fürmaxSwapangeben. Dieser Parameter ist der Option--memory-swappinessfür die Docker-Ausführung zugeordnet.Anmerkung
Wenn Sie Aufgaben auf Amazon Linux 2023 verwenden, wird der
swappiness-Parameter nicht unterstützt. tmpfs-
Der Container-Pfad, Mount-Optionen und Maximalgröße (in MB) des tmpfs-Mounts. Dieser Parameter ist der Option
--tmpfsfür die Docker-Ausführung zugeordnet.Typ: Array von Tmpfs-Objekten
Erforderlich: Nein
containerPath-
Der absolute Dateipfad, unter dem die tmpfs-Volumes gemountet werden.
Typ: Zeichenfolge
Erforderlich: Ja
mountOptions-
Die Liste der Mount-Optionen für das tmpfs-Volume.
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) des tmpfs-Volumes.
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.
Die Instances benötigen mindestens Version
1.26.0des Container-Agents, um Container-Abhängigkeiten zu aktivieren. Wir empfehlen jedoch, die neueste Version des Container-Agents zu verwenden. Informationen zum Überprüfen Ihrer Agenten-Version und zum Aktualisieren auf die neueste Version finden Sie unter Überprüfen des Amazon-ECS-Container-Agenten. Wenn Sie das Amazon-ECS-optimierte Amazon Linux-AMI verwenden, benötigt Ihre Instance mindestens Version1.26.0-1desecs-init-Pakets. Wenn Ihre Container-Instances mit Version20190301oder höher gestartet werden, enthalten sie die erforderlichen Versionen des Container-Agenten und vonecs-init. Weitere Informationen finden Sie unter Amazon ECS-optimiertes Linux AMIs."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 mitCOMPLETEidentisch, erfordert aber auch, dass der Container mit dem Statuszerobeendet wird. Diese Bedingung kann nicht für einen essenziellen 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:
120Zeitdauer (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
containerAist abhängig davon, dasscontainerBden StatusCOMPLETE,SUCCESSoderHEALTHYerreicht. Wenn einstartTimeout-Wert fürcontainerBangegeben ist und es den gewünschten Status nicht innerhalb dieses Zeitraums erreicht, wirdcontainerAnicht 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.
Der Höchstwert beträgt 120 Sekunden.
stopTimeout-
Typ: Ganzzahl
Erforderlich: Nein
Beispielwerte:
120Dauer (in Sekunden), die gewartet werden soll, bevor der Container zwangsweise beendet wird, wenn er nicht normal beendet wird.
Wenn der
stopTimeout-Parameter nicht angegeben ist, wird der für die KonfigurationsvariableECS_CONTAINER_STOP_TIMEOUTdes Amazon-ECS-Container-Agenten festgelegte Wert verwendet. Wenn weder der ParameterstopTimeoutnoch die Agent-KonfigurationsvariableECS_CONTAINER_STOP_TIMEOUTfestgelegt ist, werden die Standardwerte von 30 Sekunden für Linux-Container und 30 Sekunden für Windows-Container verwendet. Container-Instances benötigen zur Aktivierung eines Timeout-Wertes für das Stoppen des Containers mindestens Version 1.26.0 des Container-Agenten. Wir empfehlen jedoch, die neueste Version des Container-Agents zu verwenden. Informationen zum Überprüfen Ihrer Agenten-Version und zum Aktualisieren auf die neueste Version finden Sie unter Überprüfen des Amazon-ECS-Container-Agenten. Wenn Sie das Amazon-ECS-optimierte Amazon Linux-AMI verwenden, benötigt Ihre Instance mindestens Version 1.26.0-1 desecs-init-Pakets. Wenn Ihre Container-Instances mit Version20190301oder höher gestartet werden, enthalten sie die erforderlichen Versionen des Container-Agenten und vonecs-init. Weitere Informationen finden Sie unter Amazon ECS-optimiertes Linux AMIs.
Systemkontrollen
systemControls-
Typ: SystemControl Objekt
Erforderlich: Nein
Eine Liste der Namespace-Kernel-Parameter, die im Container festgelegt werden Dieser Parameter ist im Docker-Befehl create-container der Option
Sysctlsund die Option--sysctlist der Docker-Ausführung zugeordnet. 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 für Aufgaben mit dem Netzwerkmodus
awsvpcsystemControlsfür einen Container festlegen, werden diese auf alle Container in der Aufgabe angewendet. Wenn Sie unterschiedlichesystemControlsfür mehrere Container innerhalb einer einzelnen Aufgabe festlegen, werden diesystemControlsdes zuletzt gestarteten Containers für alle Container übernommen. -
Für Aufgaben, die den Netzwerkmodus
hostverwenden, wird der Netzwerk-NamespacesystemControlsnicht unterstützt.
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
hostverwenden, wird der IPC-NamespacesystemControlsnicht unterstützt. -
Für Aufgaben, die den IPC-Modus
taskverwenden, gelten die Werte des IPC-NamespacesystemControlsfür alle Container innerhalb einer Aufgabe.
Anmerkung
Dieser Parameter wird für Windows-Container nicht unterstützt.
"systemControls": [ { "namespace":"string", "value":"string" } ]namespace-
Typ: Zeichenfolge
Erforderlich: Nein
Der Namespace-Kernel-Parameter, für den ein
valuefestgelegt wird.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:
Sysctlsbeginnend mit"net.*" value-
Typ: Zeichenfolge
Erforderlich: Nein
Der Wert für den Namespace-Kernel-Parameter, der in
namespaceangegeben ist.
-
Interactive
interactive-
Typ: Boolesch
Erforderlich: Nein
Wenn dieser Parameter
trueist, können Sie Container-Anwendungen bereitstellen, für diestdinoderttyzugeordnet werden muss. Dieser Parameter ist im Docker-Befehl create-container der OptionOpenStdinund die Option--interactiveist der Docker-Ausführung zugeordnet.Der Standardwert ist
false.
Pseudo-Terminal
pseudoTerminal-
Typ: Boolesch
Erforderlich: Nein
Wenn dieser Parameter
truelautet, wird ein TTY zugeordnet. Dieser Parameter ist im Docker-Befehl create-container der OptionTtyund die Option--ttyist der Docker-Ausführung zugeordnet.Der Standardwert ist
false.
Name des Elastic Inference Accelerators (veraltet)
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
deviceNamemuss auch in einer Containerdefinition referenziert werden, siehe Elastic Inference accelerator. deviceType-
Typ: Zeichenfolge
Erforderlich: Ja
Der zu verwendende Elastic-Inference-Beschleuniger.
Aufgabenplatzierungbedingungen
Wenn Sie eine Aufgabendefinition registrieren, können Sie Aufgabenplatzierungsbedingungen angeben, die festlegen, wie Amazon-ECS-Aufgaben platziert.
Sie können Einschränkungen verwenden, um Aufgaben basierend auf der Availability Zone, dem Instance-Typ oder benutzerdefinierten Attributen zu platzieren. Weitere Informationen finden Sie unter Definieren Sie, welche Container-Instances Amazon ECS für Aufgaben verwendet.
Die folgenden Parameter sind in einer Containerdefinition zulässig:
expression-
Typ: Zeichenfolge
Erforderlich: Nein
Ein Ausdruck in Cluster-Abfragesprache, der auf die Einschränkung anzuwenden ist. Weitere Informationen finden Sie unter Ausdrücke erstellen, um Container-Instances für Amazon-ECS-Aufgaben zu definieren.
type-
Typ: Zeichenfolge
Erforderlich: Ja
Der Typ der Einschränkung. Verwenden Sie
memberOf, um die Auswahl auf eine Gruppe gültiger Kandidaten zu beschränken.
Proxykonfiguration
proxyConfiguration-
Typ: ProxyConfiguration Objekt
Erforderlich: Nein
Die Konfigurationsdetails für den App Mesh-Proxy.
Für Aufgaben, die dies verwenden EC2, benötigen die Container-Instances mindestens Version 1.26.0 des Container-Agenten und mindestens Version 1.26.0-1 des Pakets, um eine Proxykonfiguration zu ermöglichen.
ecs-initWenn Ihre Container-Instances über die Amazon-ECS-optimierte AMI-Version20190301oder höher gestartet werden, enthalten sie die erforderlichen Versionen des Container-Agenten und vonecs-init. Weitere Informationen finden Sie unter Amazon ECS-optimiertes Linux AMIs.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:
APPMESHErforderlich: 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. WennIgnoredGIDangegeben 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. WennIgnoredUIDangegeben wird, kann dieses Feld leer sein. -
AppPorts– (Erforderlich) Die Liste der Ports, welche die Anwendung verwendet. Der Netzwerkdatenverkehr zu diesen Ports wird an denProxyIngressPortund denProxyEgressPortweitergeleitet. -
ProxyIngressPort– (Erforderlich) Gibt den Port an, an den eingehender Datenverkehr zu denAppPortsgeleitet wird. -
ProxyEgressPort– (Erforderlich) Gibt den Port an, an den ausgehender Datenverkehr zu denAppPortsgeleitet wird. -
EgressIgnoredPorts– (Erforderlich) Der ausgehende Datenverkehr zu diesen angegebenen Ports wird ignoriert und nicht an denProxyEgressPortumgeleitet. Es kann sich um eine leere Liste handeln. -
EgressIgnoredIPs– (Erforderlich) Der ausgehende Datenverkehr zu diesen angegebenen IP-Adressen wird ignoriert und nicht an denProxyEgressPortumgeleitet. 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 den Docker-Daemon auf einer Container-Instance übergeben werden sollen, die dann für den Zugriff durch andere Container auf derselben Container-Instance verfügbar ist.
Im Folgenden werden die Daten-Volume-Typen aufgeführt, die verwendet werden können:
-
Amazon-EBS-Volumes – Bieten kostengünstigen, dauerhaften und leistungsstarken Blockspeicher für datenintensive containerisierte Workloads. Sie können bei der Bereitstellung 1 Amazon-EBS-Volume pro Amazon-ECS-Aufgabe anfügen, wenn Sie eine eigenständige Aufgabe ausführen oder einen Service erstellen oder aktualisieren. Amazon-EBS-Volumes werden für Linux-Aufgaben unterstützt. Weitere Informationen finden Sie unter Amazon-EBS-Volumes mit Amazon ECS verwenden.
-
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 unterstützt. Weitere Informationen finden Sie unter Amazon-EFS-Volumes mit Amazon ECS verwenden.
-
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.
-
Docker-Volumes — Ein von Docker verwaltetes Volume, das
/var/lib/docker/volumesauf der Host-Amazon-Instance erstellt wird. EC2 Docker-Volumetreiber (auch als Plugins bezeichnet) werden verwendet, um die Volumes in externe Speichersysteme wie Amazon EBS zu integrieren. Sie können den integriertenlocal-Volume-Treiber oder den Volume-Treiber eines Drittanbieters verwenden. Docker-Volumes werden nur unterstützt, wenn Aufgaben auf EC2 Amazon-Instances ausgeführt werden. Windows-Container unterstützen nur die Verwendung deslocalTreibers. Um Docker-Volumes zu verwenden, geben Sie einedockerVolumeConfigurationin Ihrer Aufgabendefinition an. -
Bind-Mounts – Eine Datei oder ein Verzeichnis auf dem Host-Computer wird in einem Container eingebunden. Bind-Mount-Host-Volumes werden unterstützt. Um Bind-Mount-Host-Volumes zu verwenden, geben Sie einen
hostund 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), Ziffern, Bindestriche (
-) und Unterstriche (_) sind erlaubt. Auf diesen Namen wird im ParametersourceVolumedesmountPoints-Objekts der Container-Definition verwiesen. host-
Erforderlich: Nein
Der
hostParameter 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 Parameterhostleer ist, weist der Docker-Daemon einen Host-Pfad 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:ProgramDataeinbinden.Anmerkung
Der
sourcePathParameter wird nur unterstützt, wenn Aufgaben verwendet werden, die auf EC2 Amazon-Instances gehostet werden.sourcePath-
Typ: Zeichenfolge
Erforderlich: Nein
Wenn der
hostParameter verwendet wird, geben Sie a an,sourcePathum 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 derhostParameter einensourcePathDateispeicherort enthält, bleibt das Datenvolumen am angegebenen Speicherort auf der EC2 Host-Amazon-Instance bestehen, bis Sie es manuell löschen. Wenn dersourcePathWert 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
truegesetzt ist, können Sie das Volume konfigurieren, wenn Sie eine eigenständige Aufgabe ausführen oder wenn Sie einen Service erstellen oder aktualisieren. Wenn diese Option auftruegesetzt ist, können Sie keine andere Volume-Konfiguration in der Aufgabendefinition angeben. Dieser Parameter muss auftruegesetzt werden, um ein Amazon-EBS-Volume für das Anhängen an eine Aufgabe zu konfigurieren. Wenn SieconfiguredAtLaunchauftruefestlegen und die Volume-Konfiguration auf die Startphase verschieben, können Sie Aufgabendefinitionen erstellen, die nicht auf einen Volume-Typ oder auf bestimmte Volume-Einstellungen beschränkt sind. Auf diese Weise können Sie Ihre Aufgabendefinition in verschiedenen Ausführungsumgebungen wiederverwenden. Weitere Informationen finden Sie unter Amazon-EBS-Volumes. dockerVolumeConfiguration-
Typ: Objekt DockerVolumeConfiguration
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
localTreibers. Um Bind-Mounts zu verwenden, geben Sie stattdessen einenhostan.scope-
Typ: Zeichenfolge
Zulässige Werte:
task|sharedErforderlich: Nein
Der Bereich für das Docker-Volume, der den Lebenszyklus bestimmt. Docker-Volumes, die auf eine
taskbeschränkt sind, werden automatisch beim Starten der Aufgabe bereitgestellt und beim Stoppen dieser vernichtet. Docker-Volumes, die alssharedangewendet werden, bleiben erhalten, nachdem die Aufgabe gestoppt wird. autoprovision-
Typ: Boolesch
Standardwert:
falseErforderlich: Nein
Wenn dieser Wert
truelautet, wird das Docker-Volume erstellt, wenn es nicht bereits vorhanden ist. Dieses Feld wird nur verwendet, wennscopeden Wertsharedaufweist. Wennscope-Werttaskist, 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 mit der Docker-Plug-In-CLI installiert wurde, rufen Sie mit
docker plugin lsden Treibernamen aus der Container-Instance ab. Wenn der Treiber mit einem anderen Verfahren installiert wurde, rufen Sie den Treibernamen mit der Docker-Plug-In-Erkennung ab. driverOpts-
Typ: Zeichenfolge
Erforderlich: Nein
Eine Zuordnung von Docker-Treiber-spezifischen Optionen für die Übergabe. Dieser Parameter ist im Bereich Ein Volume erstellen von Docker der Option
DriverOptszugeordnet. 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 eingebunden 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 ein EFS-Zugangspunkt in
authorizationConfigangegeben ist, muss der Stammverzeichnis-Parameter entweder weggelassen oder auf/festgelegt werden, was den festgelegten Pfad für den EFS-Zugangspunkt erzwingt. transitEncryption-
Typ: Zeichenfolge
Zulässige Werte:
ENABLED|DISABLEDErforderlich: 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
DISABLEDverwendet. 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 Verschlüsselung bei der Übertragung angeben, verwendet die Aufgabe die Port-Auswahlstrategie, 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 wird, muss der Stammverzeichniswert in
efsVolumeConfigurationausgelassen oder auf/festgelegt werden, was den auf dem EFS-Zugriffspunkt festgelegten Pfad erzwingt. Wenn ein Zugriffspunkt verwendet wird, muss inEFSVolumeConfigurationdie 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|DISABLEDErforderlich: Nein
Gibt an, ob die in einer Aufgabendefinition definierte Amazon-ECS-Aufgaben-IAM-Rolle beim Mounten des Amazon-EFS-Dateisystems verwendet werden soll. Wenn diese Option aktiviert ist, muss die Transit-Verschlüsselung in
EFSVolumeConfigurationaktiviert sein. Wenn dieser Parameter nicht angegeben ist, wird der StandardwertDISABLEDverwendet. Weitere Informationen finden Sie unter IAM-Rollen für Aufgaben.
FSxWindowsFileServerVolumeConfiguration-
Typ: FSxWindowsFileServerVolumeConfigurationObjekt
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:
-
Der Amazon-Ressourcenname (ARN) eines AWS Secrets Manager-Geheimnisses.
-
ARN eines AWS Systems Manager-Parameters.
-
domain-
Typ: Zeichenfolge
Erforderlich: Ja
Ein vollqualifizierter Domänenname, der in einem Verzeichnis AWS Directory Service for Microsoft Active Directory(AWS Managed Microsoft AD) oder einem selbst gehosteten EC2 Active Directory gehostet wird.
Tags (Markierungen)
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 mit der Konsole.
IPC-Modus
ipcMode-
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,taskodernone. Wenn angegeben, teilenhostsich alle Container, die sich innerhalb der Aufgaben befinden, die denhostIPC-Modus auf derselben Container-Instance spezifiziert haben, dieselben IPC-Ressourcen mit der EC2 Host-Amazon-Instance. Wenntaskangegeben ist, teilen sich alle Container innerhalb der angegebenen Aufgabe die gleichen IPC-Ressourcen. Wennnoneangegeben 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
hostverwendet wird, ist das Risiko einer unerwünschten Exposition des IPC-Namespace erhöht.Wenn Sie im Namespace bezogene Kernelparameter mit
systemControlsfür die Container in der Aufgabe festlegen, gilt Folgendes für Ihren IPC-Ressourcen-Namespace.-
Für Aufgaben, die den IPC-Modus
hostverwenden, werden IPC-Namespace bezogenesystemControlsnicht unterstützt. -
Für Aufgaben, die den IPC-Modus
taskverwenden, gelten IPC-Namespace bezogenesystemControlsfür alle Container innerhalb einer Aufgabe.
-
PID-Modus
pidMode-
Typ: Zeichenfolge
Zulässige Werte:
host|taskErforderlich: Nein
Der Prozess-Namespace, der für die Container in der Aufgabe verwendet werden soll. Die gültigen Werte sind
hostundtask. Für die Überwachung von Beiwagen benötigtpidModemöglicherweise Informationen über andere Container, die in der gleichen Aufgabe laufen.Wenn angegeben, teilen
hostsich alle Container innerhalb der Aufgaben, die denhostPID-Modus auf derselben Container-Instance angegeben haben, denselben Prozess-Namespace mit der EC2 Host-Amazon-Instance.Wenn
taskangegeben 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.
Wenn der PID-Modus
hostverwendet wird, ist das Risiko einer unerwünschten Exposition des Prozess-Namespace erhöht.
Anmerkung
Dieser Parameter wird für Windows-Container nicht unterstützt.
Fehlerinjektion
enableFaultInjection-
Typ: Boolesch
Zulässige Werte:
true|falseErforderlich: Nein
Wenn dieser Parameter in den Nutzdaten einer Aufgabe auf
truegesetzt ist, akzeptiert Amazon ECS Fehlerinjektionsanfragen von den Containern der Aufgabe. Dieser Parameter ist standardmäßig auffalsefestgelegt.