Konfiguration des Amazon ECS-Container-Agenten - Amazon Elastic Container Service

Konfiguration des Amazon ECS-Container-Agenten

Der Amazon ECS-Container-Agent unterstützt eine Reihe von Konfigurationsoptionen, von denen die meisten durch Umgebungsvariablen eingerichtet werden sollten. Die folgenden Umgebungsvariablen sind verfügbar, und alle sind optional.

Wenn Ihre Container-Instance mit einer Linux-Variante des Amazon ECS-optimierten AMI gestartet wurde, können Sie diese Umgebungsvariablen in der Datei /etc/ecs/ecs.config setzen und dann den Agenten neu starten. Sie können diese Konfigurationsvariablen auch beim Starten mit Amazon EC2-Benutzerdaten in ihre Container-Instances schreiben. Weitere Informationen finden Sie unter Bootstrapping von Container-Instances mit Amazon EC2-Benutzerdaten.

Wenn Ihre Container-Instance mit einer Windows-Variante des Amazon-ECS-optimierten AMI gestartet wurde, können Sie diese Umgebungsvariablen mit dem PowerShell-Befehl SetEnvironmentVariable festlegen und dann den Agenten neu starten. Weitere Informationen finden Sie unter Ausführen von Befehlen auf Ihrer Windows-Instance beim Launch im Benutzerhandbuch zu Amazon EC2 für Windows-Instances und Bootstrapping von Windows Container-Instances mit Amazon EC2-Benutzerdaten.

Wenn Sie den Amazon ECS-Container-Agenten manuell starten (bei AMIs, die nicht Amazon ECS-optimiert sind), können Sie diese Umgebungsvariablen in dem Befehl docker run verwenden, den Sie benutzen, um den Agent zu starten. Verwenden Sie diese Variablen mit der Syntax --env=VARIABLE_NAME=VARIABLE_VALUE. Bei sensiblen Informationen, beispielsweise Authentifizierungs-Anmeldeinformationen für private Repositorys, sollten Sie die Agent-Umgebungsvariablen in einer Datei speichern und sie alle auf einmal mit der Option --env-file path_to_env_file weitergeben.

Verfügbare Parameter

Im Folgenden sind die verfügbaren Konfigurationsparameter für Amazon ECS-Container-Agenten aufgeführt. Es gibt nicht dokumentierte Variablen, die der Agent intern verwendet, und die möglicherweise sichtbar, aber nicht für die Nutzung durch den Kunden bestimmt sind. Weitere Informationen finden Sie auf GitHub unter Amazon ECS Container Agent.

ECS_CLUSTER

Beispielwerte: MyCluster

Standardwert unter Linux: default

Standardwert unter Windows: default

Der Cluster, bei dem sich dieser Agent anmelden soll. Wenn dieser Wert nicht definiert ist, wird der default-Cluster ausgewählt. Wenn kein default-Cluster vorhanden ist, versucht der Amazon ECS-Container-Agent, ihn zu erstellen. Wenn ein Nicht-default-Cluster angegeben, aber nicht vorhanden ist, schlägt die Registrierung fehl.

ECS_RESERVED_PORTS

Beispielwerte: [22, 80, 5000, 8080]

Standardwert unter Linux: [22, 2375, 2376, 51678, 51679, 51680]

Standardwert unter Windows: [53, 135, 139, 445, 2375, 2376, 3389, 5985, 51678, 51679]

Ein Gruppe von Ports, die für die Planung bei dieser Container-Instance als nicht verfügbar gekennzeichnet werden sollten.

ECS_RESERVED_PORTS_UDP

Beispielwerte: [53, 123]

Standardwert unter Linux: []

Standardwert unter Windows: []

Ein Gruppe von UDP, die für die Planung bei dieser Container-Instance als nicht verfügbar gekennzeichnet werden sollten.

ECS_ENGINE_AUTH_TYPE

Beispielwerte: dockercfg | docker

Standardwert unter Linux: Null

Standardwert unter Windows: Null

Für die Authentifizierung bei privaten Registrierungen erforderlich. Dies ist der Authentifizierungsdatentyp in ECS_ENGINE_AUTH_DATA. Weitere Informationen finden Sie unter Authentifizierungsformate.

ECS_ENGINE_AUTH_DATA

Beispielwerte:

  • ECS_ENGINE_AUTH_TYPE=dockercfg: {"https://index.docker.io/v1/":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example.com"}}

  • ECS_ENGINE_AUTH_TYPE=docker: {"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}}

Standardwert unter Linux: Null

Standardwert unter Windows: Null

Für die Authentifizierung bei privaten Registrierungen erforderlich. Wenn ECS_ENGINE_AUTH_TYPE=dockercfg gilt, dann sollte der Wert für ECS_ENGINE_AUTH_DATA der Inhalt einer Docker-Konfigurationsdatei sein (~/.dockercfg oder ~/.docker/config.json), die durch das Ausführen von docker login erstellt wurde. Wenn ECS_ENGINE_AUTH_TYPE=docker gilt, dann sollte der Wert ECS_ENGINE_AUTH_DATA eine JSON-Darstellung des Registrierungsservers für die Authentifizierung sein, sowie die von dieser Registrierung angeforderten Authentifizierungsparameter (z. B. Benutzername, Passwort und die E-Mail-Adresse für das jeweilige Konto). Weitere Informationen finden Sie unter Authentifizierungsformate.

AWS_DEFAULT_REGION

Beispielwerte: us-east-1

Standardwert unter Linux: Wird aus den Metadaten der Amazon-EC2-Instance übernommen.

Standardwert unter Windows: Wird aus den Metadaten der Amazon-EC2-Instance übernommen.

Die Region, die in API-Anfragen verwendet werden soll, sowie um auf den richtigen Backend-Host zu schließen.

AWS_ACCESS_KEY_ID

Beispielwerte: AKIAIOSFODNN7EXAMPLE

Standardwert unter Linux: Wird aus den Metadaten der Amazon-EC2-Instance übernommen.

Standardwert unter Windows: Wird aus den Metadaten der Amazon-EC2-Instance übernommen.

Der -Zugriffsschlüssel, der vom Agenten für alle Aufrufe verwendet wird.

AWS_SECRET_ACCESS_KEY

Beispielwerte: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

Standardwert unter Linux: Wird aus den Metadaten der Amazon-EC2-Instance übernommen.

Standardwert unter Windows: Wird aus den Metadaten der Amazon-EC2-Instance übernommen.

Der Geheimschlüssel, der vom Agenten für alle Aufrufe verwendet wird.

AWS_SESSION_TOKEN

Standardwert unter Linux: Wird aus den Metadaten der Amazon-EC2-Instance übernommen.

Standardwert unter Windows: Wird aus den Metadaten der Amazon-EC2-Instance übernommen.

Das für temporäre Anmeldeinformationen verwendete Sitzungs-Token.

DOCKER_HOST

Beispielwerte: unix:///var/run/docker.sock

Standardwert unter Linux: unix:///var/run/docker.sock

Standardwert unter Windows: npipe:////./pipe/docker_engine

Dienst zum Erstellen einer Verbindung mit dem Docker-Daemon; verhält sich ähnlich wie die Umgebungsvariable, die vom Docker-Client verwendet wird.

ECS_LOGFILE

Beispielwerte: /ecs-agent.log

Standardwert unter Linux: Null

Standardwert unter Windows: Null

Bestimmt den Speicherort, an dem Agenten-Protokolle geschrieben werden sollen. Wenn Sie den Agenten über ecs-init ausführen, was die Standardmethode bei Verwendung des Amazon ECS-optimierten AMI ist, ist der Pfad im Container /log und ecs-init mountet dies an /var/log/ecs/ auf dem Host.

ECS_LOGLEVEL

Beispielwerte: crit, error, warn, info, debug

Standardwert unter Linux: info

Standardwert unter Windows: info

Die zu protokollierende Detailebene.

ECS_LOGLEVEL_ON_INSTANCE

Beispielwerte: none, crit, error, warn, info, debug

Standardwert unter Linux: none, wenn ECS_LOG_DRIVER explizit auf einen nicht leeren Wert gesetzt wird, andernfalls der gleiche Wert wie ECS_LOGLEVEL

Standardwert unter Windows: none, wenn ECS_LOG_DRIVER explizit auf einen nicht leeren Wert gesetzt wird, andernfalls der gleiche Wert wie ECS_LOGLEVEL

Kann verwendet werden, um ECS_LOGLEVEL zu überschreiben und um eine Detailebene festzulegen, die in der On-Instance-Protokolldatei protokolliert werden soll, unabhängig von der Ebene, die im Protokollierungstreiber protokolliert wird. Wenn ein Protokollierungstreiber explizit festgelegt ist, werden On-Instance-Protokolle standardmäßig deaktiviert, können aber mit dieser Variablen wieder aktiviert werden.

ECS_CHECKPOINT

Beispielwerte: true | false

Standardwert unter Linux: Wenn für ECS_DATADIR explizit ein nicht leerer Wert angegeben ist, wird ECS_CHECKPOINT auf true gesetzt, andernfalls auf false.

Standardwert unter Windows: Wenn für ECS_DATADIR explizit ein nicht leerer Wert angegeben ist, wird ECS_CHECKPOINT auf true gesetzt, andernfalls auf false.

Gibt an, ob der Prüfpunktstatus an dem mit ECS_DATADIR spezifizierten Ort gespeichert werden soll.

ECS_DATADIR

Beispielwerte: /data

Standardwert unter Linux: /data/

Standardwert unter Windows: C:\ProgramData\Amazon\ECS\data

Der Name des persistenten Datenverzeichnisses in dem Container, in dem der Amazon ECS-Container-Agent ausgeführt wird. Das Verzeichnis dient dazu, Daten über den Cluster und den Agent-Zustand zu speichern.

ECS_UPDATES_ENABLED

Beispielwerte: true | false

Standardwert unter Linux: false

Standardwert unter Windows: false

Gibt an, ob das Programm für Amazon ECS-Agent-Updates beendet werden soll, wenn diese angefragt werden.

ECS_DISABLE_METRICS

Beispielwerte: true | false

Standardwert unter Linux: false

Standardwert unter Windows: true

Ob die CloudWatch Metriken für Amazon ECS deaktiviert werden sollen oder nicht. Ist dieser Wert auf true gesetzt, werden keine CloudWatch-Metriken erfasst.

ECS_POLL_METRICS

Beispielwerte: true | false

Standardwert unter Linux: false (siehe Beschreibung)

Standardwert unter Windows: false (weitere Informationen in der folgenden Beschreibung)

Gibt an, ob bei der Erfassung von CloudWatch-Metriken für Aufgaben abgefragt oder gestreamt werden soll.

In Agent-Versionen vor 1.40.0 war der Standardwert false. In Agent-Versionen 1.40.0 bis 1.42.0 ist der Standardwert true. In Agent-Versionen 1.43.0 und später ist der Standardwert false.

Wichtig

Wenn Sie ECS_POLL_METRICS auf „false“ festlegen, führt dies zu einer hohen CPU-Auslastung durch den Agent bei einer Verwendung von „dockerd“ und „containerd“, wenn Ihre Amazon-EC2-Instance mehrere Container hostet.

ECS_POLLING_METRICS_WAIT_DURATION

Beispielwerte: 30s

Standardwert unter Linux: 15s

Standardwert unter Windows: 15s

Gibt an, wie lange mit der Abfrage neuer CloudWatch-Metriken für eine Aufgabe gewartet wird. Wird nur verwendet, wenn ECS_POLL_METRICS true ist.

ECS_RESERVED_MEMORY

Beispielwerte: 32

Standardwert unter Linux: 0

Standardwert unter Windows: 0

Die Arbeitsspeichermenge (in MiB), die aus dem Pool entfernt werden soll, der mit Ihren Aufgaben verknüpft ist. So wird dieser Arbeitsspeicher für kritische Systemprozesse reserviert, einschließlich des Docker-Daemon- und des Amazon ECS-Container-Agenten. Wenn Sie beispielsweise ECS_RESERVED_MEMORY=256 angeben, registriert der Agent den gesamten Arbeitsspeicher bis auf 256 MiB für diese Instance und 256 MiB an Systemarbeitsspeicher können nicht für Amazon-ECS-Aufgaben zugeordnet werden. Weitere Informationen finden Sie unter Container-InstanceSpeicherverwaltung.

ECS_AVAILABLE_LOGGING_DRIVERS

Beispielwerte: ["awslogs","fluentd","gelf","json-file","journald","splunk","logentries","syslog"]

Standardwert unter Linux: ["json-file","none"]

Standardwert unter Windows: ["json-file","none"]

Anmerkung

Wenn Sie ECS-init verwenden, lauten die Standardwerte ["json-file","syslog","awslogs","none"].

Die für die Container-Instance verfügbaren Protokolltreiber. Der auf einer Container-Instance ausgeführte Amazon ECS-Container-Agent muss die für die Instance verfügbaren Protokolltreiber mit der Umgebungsvariablen ECS_AVAILABLE_LOGGING_DRIVERS registrieren, bevor in der Instance platzierte Container die Protokollkonfigurationsoptionen für diese Treiber in Aufgaben verwenden können. Weitere Informationen zur Verwendung des awslogs-Protokolltreibers finden Sie unter Verwenden des awslogs-Protokolltreibers. Weitere Informationen über die verschiedenen für Ihre Docker-Version verfügbaren Protokolltreiber und wie sie konfiguriert werden finden Sie unter Configure logging drivers in der Docker-Dokumentation.

ECS_DISABLE_PRIVILEGED

Beispielwerte: true | false

Standardwert unter Linux: false

Standardwert unter Windows: false

Gibt an, ob das Starten privilegierter Container in der Container-Instance deaktiviert ist. Ist dieser Wert auf true gesetzt, werden keine privilegierten Container zugelassen.

ECS_SELINUX_CAPABLE

Beispielwerte: true | false

Standardwert unter Linux: false

Standardwert unter Windows: false

Gibt an, ob SELinux für die Container-Instance verfügbar ist.

ECS_APPARMOR_CAPABLE

Beispielwerte: true | false

Standardwert unter Linux: false

Standardwert unter Windows: false

Gibt an, ob AppArmor für die Container-Instance verfügbar ist.

ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION

Beispielwerte: 1h (Gültige Zeiteinheiten sind „ns“, „us“ (oder „µs“), „ms“, „s“, „m“ und „h“.)

Standardwert unter Linux: 3h

Standardwert unter Windows: 3h

Die Zeit, die gewartet werden soll, ab dem Zeitpunkt, an dem eine Aufgabe gestoppt wird, bis zu dem Zeitpunkt, zu dem der Docker-Container entfernt wird. Da hierbei die Docker-Containerdaten entfernt werden, beachten Sie Folgendes: Wenn dieser Wert zu niedrig eingestellt ist, können Sie möglicherweise Ihre gestoppten Container nicht untersuchen oder die Protokolle nicht anzeigen, bevor sie entfernt werden. Die Mindestdauer ist 1m; alle Werte unter 1 Minute werden ignoriert.

ECS_CONTAINER_STOP_TIMEOUT

Beispielwerte: 10m (Gültige Zeiteinheiten sind „ns“, „us“ (oder „µs“), „ms“, „s“, „m“ und „h“.)

Standardwert unter Linux: 30s

Standardwert unter Windows: 30s

Die Zeit, die gewartet werden soll, ab dem Zeitpunkt, an dem eine Aufgabe gestoppt wird, bis zu dem Zeitpunkt, an dem ihre Container zwangsweise beendet werden, wenn Sie sich nicht auf normale Art selbstständig beenden.

ECS_CONTAINER_START_TIMEOUT

Beispielwerte: 10m (Gültige Zeiteinheiten sind „ns“, „us“ (oder „µs“), „ms“, „s“, „m“ und „h“.)

Standardwert unter Linux: 3m

Standardwert unter Windows: 8m

Die Zeit, die gewartet werden soll, bis das Starten eines Containers aufgegeben wird.

HTTP_PROXY

Beispielwerte: 10.0.0.131:3128

Standardwert unter Linux: Null

Standardwert unter Windows: Null

Der Hostname (oder die IP-Adresse) und die Portnummer eines HTTP-Proxys, die verwendet werden, damit der Amazon ECS-Agent eine Internetverbindung aufbauen kann. Dieser Proxy wird beispielsweise verwendet, wenn Ihre Container-Instances keinen externen Netzwerkzugriff über ein Amazon VPC-Internet-Gateway, NAT-Gateway oder eine Instance haben. Wenn diese Variable gesetzt ist, müssen Sie auch die Variable NO_PROXY setzen, um Amazon-EC2-Instance-Metadaten und Docker-Daemon-Datenverkehr vom Proxy zu filtern. Weitere Informationen finden Sie unter HTTP-Proxykonfiguration.

NO_PROXY

Beispielwerte:

  • Linux: 169.254.169.254,169.254.170.2,/var/run/docker.sock

  • Windows: 169.254.169.254,169.254.170.2,\\.\pipe\docker_engine

Standardwert unter Linux: Null

Standardwert unter Windows: Null

Der HTTP-Datenverkehr sollte nicht an den angegebenen HTTP_PROXY weitergeleitet werden. Sie müssen 169.254.169.254,/var/run/docker.sock spezifizieren, um Amazon-EC2-Instance-Metadaten und Docker-Daemon-Datenverkehr vom Proxy zu filtern. Weitere Informationen finden Sie unter HTTP-Proxykonfiguration.

ECS_ENABLE_TASK_IAM_ROLE

Beispielwerte: true | false

Standardwert unter Linux: false

Standardwert unter Windows: false

Anmerkung

Wenn Sie ecs init verwenden, lautet der Standardwert true.

Gibt an, ob IAM-Rollen für Aufgaben auf der Container-Instance für Aufgaben-Container mit den Netzwerkmodi bridge oder default aktiviert werden sollen. Weitere Informationen finden Sie unter IAM-Rollen für Aufgaben.

ECS_ENABLE_TASK_IAM_ROLE_NETWORK_HOST

Beispielwerte: true | false

Standardwert unter Linux: false

Standardwert unter Windows: false

Anmerkung

Wenn Sie ecs init verwenden, lautet der Standardwert true.

Gibt an, ob IAM-Rollen für Aufgaben auf der Container-Instance für Aufgaben-Container mit dem Netzwerkmodus host aktiviert werden sollen. Diese Variable wird nur von den Agenten-Versionen 1.12.0 oder höher unterstützt. Weitere Informationen finden Sie unter IAM-Rollen für Aufgaben.

ECS_DISABLE_IMAGE_CLEANUP

Beispielwerte: true

Standardwert unter Linux: false

Standardwert unter Windows: false

Gibt an, ob die automatische Image-Bereinigung für den Amazon ECS-Agent deaktiviert werden soll. Weitere Informationen finden Sie unter Automatisierte Aufgaben- und Image-Bereinigung.

ECS_IMAGE_CLEANUP_INTERVAL

Beispielwerte: 30m

Standardwert unter Linux: 30m

Standardwert unter Windows: 30m

Das Zeitintervall zwischen den Zyklen für die automatische Image-Bereinigung. Werte unter 10 Minuten werden ignoriert.

ECS_IMAGE_MINIMUM_CLEANUP_AGE

Beispielwerte: 30m

Standardwert unter Linux: 1h

Standardwert unter Windows: 1h

Das minimale Zeitintervall zwischen dem Zeitpunkt der Pull-Übertragung eines Abbilds und dem Zeitpunkt, zu dem es für die automatische Image-Bereinigung in Betracht kommt.

NON_ECS_IMAGE_MINIMUM_CLEANUP_AGE

Beispielwerte: 30m

Standardwert unter Linux: 1h

Standardwert unter Windows: 1h

Das minimale Zeitintervall zwischen dem Zeitpunkt, zu dem ein Nicht-Amazon ECS-Image erstellt wird, und dem Zeitpunkt, zu dem es für die automatische Image-Bereinigung in Betracht kommt.

ECS_NUM_IMAGES_DELETE_PER_CYCLE

Beispielwerte: 5

Standardwert unter Linux: 5

Standardwert unter Windows: 5

Die maximale Anzahl an Image, die in einem einzelnen Zyklus der automatischen Abbildbereinigung gelöscht werden. Werte unter 1 werden ignoriert.

ECS_IMAGE_PULL_BEHAVIOR

Beispielwerte: default | always | once | prefer-cached

Standardwert unter Linux: default

Standardwert unter Windows: default

Das Verhalten Ihrer Container-Instances beim Abrufen von Images. Folgende Werte sind möglich.

  • default: Das Image wird remote abgerufen. Wenn das Abrufen fehlschlägt, verwendet der Container das in der Instance zwischengespeicherte Image.

  • always: Das Image wird immer remote abgerufen. Wenn das Abrufen des Image fehlschlägt, schlägt die Aufgabe fehl. Diese Option gewährleistet, dass immer die neueste Version des Image abgerufen wird. Zwischengespeicherte Images werden ignoriert und von der automatischen Bereinigungsfunktion entfernt.

  • Wenn once festgelegt ist, wird das Image nur dann remote abgerufen, wenn es noch nicht von einer vorherigen Aufgabe in derselben Container-Instance abgerufen oder das zwischengespeicherte Image von der automatischen Bereinigungsfunktion entfernt wurde. Andernfalls wird das zwischengespeicherte Image in der Instance verwendet. Dadurch wird sichergestellt, dass keine unnötigen Image-Abrufversuche durchgeführt werden.

  • Wenn prefer-cached angegeben ist, wird das Image remote abgerufen, wenn es keine zwischengespeicherte Version gibt. Andernfalls wird das zwischengespeicherte Image in der Instance verwendet. Die automatische Image-Bereinigung wird für den Container deaktiviert, um sicherzustellen, dass das zwischengespeicherte Abbild nicht entfernt wird.

ECS_IMAGE_PULL_INACTIVITY_TIMEOUT

Beispielwerte: 1m

Standardwert unter Linux: 1m

Standardwert unter Windows: 3m

Gibt an, wie lange gewartet wird, nachdem Docker die vollständige Wartezeit zur die Extraktion eines Containers abgerufen hat. Nützlich zum Optimieren von großen Windows-Containern.

ECS_INSTANCE_ATTRIBUTES

Beispielwerte: {"custom_attribute": "custom_attribute_value"}

Standardwert unter Linux: Null

Standardwert unter Windows: Null

Eine Liste benutzerdefinierter Attribute im JSON-Format zur Anwendung auf Ihre Container-Instances. Wird dieses Attribut bei der Instance-Registrierung verwendet, werden die benutzerdefinierten Attribute hinzugefügt. Diese müssen dann nicht manuell über die AWS Management Console eingegeben werden.

Anmerkung

Hinzugefügte Attribute werden nicht für bereits registrierte Container-Instances verwendet. Weitere Informationen zum Hinzufügen benutzerdefinierter Attribute für bereits registrierte Container-Instances finden Sie unter Hinzufügen eines Attributs.

Weitere Informationen über die Verwendung benutzerdefinierter Attribute finden Sie unter Attribute.

Ein ungültiger JSON-Wert für diese Variable bewirkt, dass der Agent mit einem Code von 5 beendet wird. In den Agentenprotokollen wird eine Nachricht angezeigt. Der JSON-Wert ist möglicherweise gültig, aber es wurde ein Problem bei der Validierung des Attributs festgestellt (z. B. wenn der Wert zu lang ist oder ungültige Zeichen enthält). In diesem Fall erfolgt die Registrierung der Container-Instance, aber der Agent wird mit dem Code 5 beendet, und in die Agentenprotokolle wird eine Mitteilung geschrieben. Informationen zum Auffinden der Agentenprotokolle finden Sie unter Amazon ECS-Container-Agenten-Protokoll.

ECS_ENABLE_TASK_ENI

Beispielwerte: true | false

Standardwert unter Linux: false

Standardwert unter Windows: false

Legt fest, ob die Aufgabenvernetzung für Aufgaben aktiviert wird, die mit einer eigenen Netzwerkschnittstelle gestartet werden sollen.

ECS_CNI_PLUGINS_PATH

Beispielwerte: /ecs/cni

Standardwert unter Linux: /amazon-ecs-cni-plugins

Der Standardwert unter Windows: Nicht zutreffend

Der Pfad, in dem sich die cni-Binärdatei in Linux befindet.

ECS_AWSVPC_BLOCK_IMDS

Beispielwerte: true | false

Standardwert unter Linux: false

Standardwert unter Windows: false

Ob der Zugriff auf Instance-Metadaten für Aufgaben blockiert werden soll, die mit dem Netzwerkmodus awsvpc gestartet wurden.

ECS_AWSVPC_ADDITIONAL_LOCAL_ROUTES

Beispielwerte: ["10.0.15.0/24"]

Standardwert unter Linux: []

Standardwert unter Windows: []

Im Netzwerkmodus awsvpc wird der Datenverkehr an diese Präfixe über die Host-Brücke statt über die Elastic-Network-Schnittstelle geleitet.

ECS_ENABLE_CONTAINER_METADATA

Beispielwerte: true | false

Standardwert unter Linux: false

Standardwert unter Windows: false

Bei true erstellt der Agent eine Datei, die die Metadaten des Containers beschreibt. Die Datei kann mithilfe der Containerumgebungsvariable $ECS_CONTAINER_METADATA_FILE gefunden und verwendet werden.

ECS_HOST_DATA_DIR

Beispielwerte: /var/lib/ecs

Standardwert unter Linux: /var/lib/ecs

Der Standardwert unter Windows: Nicht zutreffend

Das Quellverzeichnis auf dem Host, von dem ECS_DATADIR gemountet ist. Wir verwenden dies, um den Quell-Mountingpfad für Containermetadatendateien zu ermitteln, falls der Amazon ECS-Agent als Container ausgeführt wird. Wir verwenden diesen Wert nicht in Windows, da der Amazon ECS-Agent nicht als Container ausgeführt wird.

ECS_ENABLE_TASK_CPU_MEM_LIMIT

Beispielwerte: true | false

Standardwert unter Linux: true

Standardwert unter Windows: false

Legt fest, ob CPU- und Speicherlimits auf Aufgabenebene aktiviert werden sollen.

ECS_CGROUP_PATH

Beispielwerte: /sys/fs/cgroup

Standardwert unter Linux: /sys/fs/cgroup

Der Standardwert unter Windows: Nicht zutreffend

Der cgroup-Stammpfad, der vom Amazon ECS-Agenten erwartet wird. Hierbei handelt es sich um den Pfad, der über den Agenten-Mount zugänglich ist.

ECS_ENABLE_CPU_UNBOUNDED_WINDOWS_WORKAROUND

Beispielwerte: true | false

Der Standardwert unter Linux: Nicht zutreffend

Standardwert unter Windows: false

Bei der Einstellung true lässt Amazon ECS die Ausführung von CPU-unbegrenzten Aufgaben (CPU = 0) zusammen mit CPU-begrenzten Aufgaben in Windows zu.

ECS_TASK_METADATA_RPS_LIMIT

Beispielwerte: 100,150

Standardwert unter Linux: 40,60

Standardwert unter Windows: 40,60

Durch Kommas getrennte ganzzahlige Werte für konstante und Burst-Drosselungslimits für Endpunkte der Aufgabenmetadaten.

ECS_SHARED_VOLUME_MATCH_FULL_CONFIG

Beispielwerte: true | false

Standardwert unter Linux: false

Standardwert unter Windows: false

Wenn dockerVolumeConfiguration in einer Aufgabendefinition festgelegt und das Flag autoprovision verwendet wurde, vergleicht der Amazon ECS-Containeragent die Details des Docker-Volumes mit den Details der vorhandenen Docker-Volumes. Wenn ECS_SHARED_VOLUME_MATCH_FULL_CONFIG auf true festgelegt ist, vergleicht der Containeragent die vollständige Konfiguration des Volumes (name, driverOpts und labels), um zu prüfen, dass die Volumes identisch sind. Wenn der Wert auf false gesetzt ist, verwendet der Containeragent das Standardverhalten von Docker, bei dem nur der Parameter name des Volumes überprüft wird. Wenn ein Volume von mehreren Container-Instances gemeinsam genutzt wird, muss dieser Wert false sein. Weitere Informationen finden Sie unter Docker-Volumes.

ECS_CONTAINER_INSTANCE_PROPAGATE_TAGS_FROM

Beispielwerte: ec2_instance

Standardwert unter Linux: keiner

Standardwert unter Windows: keiner

Wenn ec2_instance angegeben ist, werden bestehende Tags, die in der Container-Instance definiert sind, in Amazon ECS registriert. Die Tags sind mit der Operation ListTagsForResource auffindbar. Die der Container-Instance zugeordnete IAM-Rolle sollte über die Erlaubnis der Aktion ec2:DescribeTags verfügen. Weitere Informationen finden Sie unter Hinzufügen von Tags zu einer Amazon EC2 Container-Instance.

ECS_CONTAINER_INSTANCE_TAGS

Beispielwerte: {"tag_key": "tag_val"}

Standardwert unter Linux: {}

Standardwert unter Windows: {}

Metadaten, die auf Container-Instances angewendet werden, um Ihnen bei der Kategorisierung und Organisation Ihrer Ressourcen zu helfen. Jedes Tag besteht aus einem benutzerdefinierten Schlüssel und einem optionalen Wert. Tag-Schlüssel dürfen eine maximale Zeichenlänge von 128 Zeichen haben. Tag-Werte können eine maximale Länge von 256 Zeichen haben.

Wenn Container-Instance-Tags über den Parameter ECS_CONTAINER_INSTANCE_PROPAGATE_TAGS_FROM propagiert werden, werden diese Tags durch die Tags mit der Angabe ECS_CONTAINER_INSTANCE_TAGS überschrieben. Weitere Informationen finden Sie unter Hinzufügen von Tags zu einer Amazon EC2 Container-Instance.

ECS_ENABLE_UNTRACKED_IMAGE_CLEANUP

Beispielwerte: true | false

Standardwert unter Linux: false

Standardwert unter Windows: false

Gibt an, ob dem Amazon ECS-Agenten das Löschen von Containern und Images, die nicht Teil von Amazon-ECS-Aufgaben sind, erlaubt wird.

ECS_EXCLUDE_UNTRACKED_IMAGE

Beispielwerte: {"alpine":"latest"}

Standardwert unter Linux: {}

Standardwert unter Windows: {}

Eine durch Komma getrennte Liste von Images (imageName:tag), die vom Amazon ECS-Agenten nicht gelöscht werden sollen, wenn ECS_ENABLE_UNTRACKED_IMAGE_CLEANUP true ist.

ECS_DISABLE_DOCKER_HEALTH_CHECK

Beispielwerte: true | false

Standardwert unter Linux: false

Standardwert unter Windows: false

Gibt an, ob die Docker-Container-Zustandsprüfung für den Amazon ECS-Agenten deaktiviert wird.

ECS_NVIDIA_RUNTIME

Beispielwerte: nvidia

Standardwert unter Linux: nvidia

Standardwert unter Windows: n/a

Gibt an, welche Laufzeit zur Übergabe von NVIDIA-GPU-Geräten an Container verwendet wird. Dieser Parameter sollte nicht als Umgebungsvariable in einer Aufgabendefinition angegeben werden, wenn die GPU-Ressourcenanforderungen bereits angegeben wurden. Weitere Informationen finden Sie unter Arbeiten mit GPUs auf Amazon ECS.

ECS_ENABLE_SPOT_INSTANCE_DRAINING

Beispielwerte: true

Standardwert unter Linux: false

Standardwert unter Windows: false

Gibt an, ob der Spot-Instance-Ausgleich für die Container-Instance aktiviert werden soll. Wenn der Wert „true“ ist und die Container-Instance eine Spot-Unterbrechungsbenachrichtigung erhält, setzt der Agent den Instance-Status auf DRAINING. Dadurch werden alle in der Instance ausgeführten Aufgaben, die Teil eines Services sind, ordnungsgemäß heruntergefahren und ersetzt. Es wird empfohlen, diesen Wert auf "true" zu setzen, wenn Spot-Instances verwendet werden. Weitere Informationen finden Sie unter Container-Instance-Ausgleich.

ECS_ENABLE_GPU_SUPPORT

Beispielwerte: true

Standardwert unter Linux: false

Standardwert unter Windows: n/a

Ob Sie Container-Instances mit GPU-Support verwenden. Dieser Parameter wird für den Agenten festgelegt. Sie müssen auch Ihre Aufgabendefinitionen für GPU konfigurieren. Weitere Informationen finden Sie unter Arbeiten mit GPUs auf Amazon ECS.

ECS_LOG_ROLLOVER_TYPE

Beispielwerte: size, hourly

Standardwert unter Linux: hourly

Standardwert unter Windows: hourly

Bestimmt, ob die Container-Agent-Protokolldatei stündlich oder basierend auf der Größe rotiert wird. Standardmäßig wird die Agent-Protokolldatei stündlich rotiert.

ECS_LOG_OUTPUT_FORMAT

Beispielwerte: logfmt, json

Standardwert unter Linux: logfmt

Standardwert unter Windows: logfmt

Bestimmt das Protokollausgabeformat. Wenn das json-Format verwendet wird, wird jede Zeile im Protokoll eine strukturierte JSON-Karte sein.

ECS_LOG_MAX_FILE_SIZE_MB

Beispielwerte: 10

Standardwert unter Linux: 10

Standardwert unter Windows: 10

Wenn die Variable ECS_LOG_ROLLOVER_TYPE auf size gesetzt ist, bestimmt diese Variable die maximale Größe (in MB) der Protokolldatei, bevor sie rotiert wird. Wenn der Rollover-Typ auf hourly festgelegt ist, wird diese Variable ignoriert.

ECS_LOG_MAX_ROLL_COUNT

Beispielwerte: 24

Standardwert unter Linux: 24

Standardwert unter Windows: 24

Bestimmt die Anzahl der rotierten Protokolldateien, die beibehalten werden sollen. Ältere Protokolldateien werden gelöscht, nachdem diese Grenze erreicht ist.

ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE

Beispielwerte: true

Standardwert unter Linux: siehe Beschreibung unten

Standardwert unter Windows: false

Gibt an, ob der Protokolltreiber awslogs für die Authentifizierung mit der IAM-Aufgabenausführungsrolle aktiviert werden soll. Dieser Parameter muss true sein, um den Protokolltreiber awslogs in einer Aufgabe verwenden zu können, für die auch eine IAM-Aufgabenausführungsrolle angegeben ist. Bei Verwendung des Amazon ECS-optimierten AMI mit Version 1.16.0-1 oder höher des ecs-init-Pakets wird der Standardwert von true verwendet. Bei Verwendung älterer Versionen des ecs-init-Pakets wird der Standardwert false verwendet.

ECS_PULL_DEPENDENT_CONTAINERS_UPFRONT

Beispielwerte: true | false

Standardwert unter Linux: false

Standardwert unter Windows: false

Ob Images für Container mit Abhängigkeiten abgerufen werden sollen, bevor der dependsOn-Zustand erfüllt wurde.

ECS_EXCLUDE_IPV6_PORTBINDING

Beispielwerte: true | false

Standardwert unter Linux: true

Standardwert unter Windows: true

Gibt an, ob der Agent IPv6-Port-Bindungen ausschließen soll, wenn der default-Netzwerkmodus verwendet wird. Wenn dieser Wert wahr ist, werden IPv6-Portbindungen gefiltert und Aufgaben-IPv6-Portbindungen nicht in der DescribeTasks-Antwort zurückgegeben. Die Bindungen sind im Metadatenendpunkt der Aufgaben enthalten.

Das ist in Agent-Version 1.55.3 und höher verfügbar.

ECS_SKIP_LOCALHOST_TRAFFIC_FILTER

Beispielwerte: true | false

Standardwert unter Linux: false

Standardwert unter Windows: false

Standardmäßig fügt der ecs-init-Service eine iptable-Regel hinzu, um nicht lokale Pakete auf localhost zu verwerfen, wenn sie nicht Teil einer bestehenden weitergeleiteten Verbindung oder DNAT sind und entfernt die Regel beim Anhalten. Wenn ECS_SKIP_LOCALHOST_TRAFFIC_FILTER auf „true“ gesetzt ist, wird diese Regel nicht hinzugefügt oder entfernt.

ECS_ALLOW_OFFHOST_INTROSPECTION_ACCESS

Beispielwerte: true | false

Standardwert unter Linux: false

Standardwert unter Windows: false

Standardmäßig fügt der ecs-init-Service eine iptable-Regel hinzu, um den Zugriff auf den Agenten-Introspektions-Port von außerhalb des Hosts (oder von Containern im awsvpc-Netzwerkmodus) zu blockieren und entfernt die Regel beim Anhalten. Wenn ECS_ALLOW_OFFHOST_INTROSPECTION_ACCESS auf „true“ gesetzt ist, wird diese Regel nicht hinzugefügt oder entfernt.

ECS_OFFHOST_INTROSPECTION_INTERFACE_NAME

Beispielwerte: eth0

Standardwert unter Linux: eth0

Standardwert unter Windows: eth0

Der Name der primären Netzwerkschnittstelle, die zum Blockieren des Port-Zugriffs auf Agenten außerhalb des Hosts verwendet wird. Dieser Wert ist standardmäßig eth0.

ECS_WARM_POOLS_CHECK

Beispielwerte: true | false

Standardwert unter Linux: false

Standardwert unter Windows: false

Setzen Sie diese Variable nur dann auf true, wenn Sie eine Auto-Scaling-Gruppe haben und dieser einen Warm-Pool zuordnen möchten.

Wenn dies zutrifft, fragt der Amazon-ECS-Agent die Instance-Metadaten ab, um festzustellen, ob die Instance bereit ist, in den Amazon-ECS-Cluster aufgenommen zu werden. Wenn Ihre Anwendung aufskalieren muss, verschiebt die Auto-Scaling-Gruppe schnell die erforderliche Anzahl vorinitialisierter Instances vom Warm-Pool in den Cluster.

Die Variable ist in Version 1.59.0 und höher des Agenten verfügbar.

Speichern der Container-Instance-Konfiguration in Amazon S3

Die Amazon ECS-Container-Agent-Konfiguration wird mit den oben beschriebenen Umgebungsvariablen kontrolliert. Die Linux-Varianten des Amazon ECS-optimierten AMI suchen nach diesen Variablen in /etc/ecs/ecs.config, wenn der Containeragent startet, und konfigurieren den Agenten entsprechend. Bestimmte unverfängliche Umgebungsvariablen, beispielsweise ECS_CLUSTER, können beim Starten durch Amazon EC2-Benutzerdaten an die Container-Instance übergeben und folgenlos in diese Datei geschrieben werden. Andere sensible Informationen, z. B. Ihre AWS-Anmeldeinformationen oder die Variable ECS_ENGINE_AUTH_DATA, sollten niemals in den Benutzerdaten an eine Instance übergeben oder in die Datei /etc/ecs/ecs.config geschrieben werden, so dass sie in einer .bash_history-Datei sichtbar wären.

Das Speichern von Konfigurationsinformationen in einem privaten Amazon S3-Bucket und das Erteilen der schreibgeschützten Zugriffsberechtigung Ihrer IAM-Rolle der Container-Instance ist eine sichere und bequeme Art, die Konfiguration der Container-Instance zur Startzeit zu ermöglichen. Sie können eine Kopie Ihrer ecs.config-Datei in einem privaten Bucket speichern. Sie können dann Amazon EC2-Benutzerdaten verwenden, um AWS CLI zu installieren und Ihre Konfigurationsinformationen zu /etc/ecs/ecs.config zu kopieren, wenn die Instance gestartet wird.

So gewähren Sie schreibgeschütztem Amazon S3-Zugriff auf Ihre Container-Instance-Rolle

  1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im Navigationsbereich Roles (Rollen) die IAM-Rolle aus, die Sie für Ihre Container-Instances verwenden möchten. Diese Rolle hat wahrscheinlich den Titel ecsInstanceRole. Weitere Informationen finden Sie unter IAM-Rolle für Amazon ECS-Container-Instance.

  3. Wählen Sie unter Managed Policies Attach Policy aus.

  4. Geben Sie auf der Seite Attach Policy (Richtlinie anfügen) in das Feld Filter den Wert S3 ein, um die Ergebnisse für die Richtlinie einzugrenzen.

  5. Aktivieren Sie das Kontrollkästchen links neben der Richtlinie AmazonS3ReadOnlyAccess und wählen Sie Attach Policy aus.

So speichern Sie eine ecs.config-Datei in Amazon S3

  1. Erstellen Sie eine ecs.config-Datei mit gültigen Umgebungsvariablen und Werten aus Konfiguration des Amazon ECS-Container-Agenten in folgendem Format. Dieses Beispiel konfiguriert private Registry-Authentifizierung. Weitere Informationen finden Sie unter Private Registrierungsauthentifizierung für Aufgaben.

    ECS_ENGINE_AUTH_TYPE=dockercfg ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example.com"}}
  2. Um Ihre Konfigurationsdatei zu speichern, erstellen Sie in Amazon S3 einen privaten Bucket. Weitere Informationen finden Sie unter Erstellen eines Buckets im Benutzerhandbuch zu Amazon Simple Storage Service.

  3. Laden Sie die Datei ecs.config in Ihren S3-Bucket hoch. Anleitungen finden Sie unter Hinzufügen eines Objekts zu einem Bucket im Benutzerhandbuch zu Amazon Simple Storage Service.

So laden Sie eine ecs.config-Datei beim Start von Amazon S3

  1. Führen Sie in diesem Bereich die zuvor genannten Verfahren aus, um schreibgeschützten Amazon S3-Zugriff auf Ihre Container-Instances zu ermöglichen und eine ecs.config-Datei in einem privaten S3-Bucket zu speichern.

  2. Starten Sie neue Container-Instances, indem Sie die Schritte in Starten einer Amazon ECS Linux-Container-Instance befolgen. Verwenden Sie in Schritt 7 das folgende Beispiel-Skript, das die AWS CLI installiert und Ihre Konfigurationsdatei in /etc/ecs/ecs.config kopiert.

    #!/bin/bash yum install -y aws-cli aws s3 cp s3://your_bucket_name/ecs.config /etc/ecs/ecs.config