Amazon-ECS-Endpunkte zur Fehlerinjektion - Amazon Elastic Container Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Amazon-ECS-Endpunkte zur Fehlerinjektion

Der Amazon-ECS-Container-Agent fügt die ECS_AGENT_URI-Umgebungsvariable automatisch in die Amazon-ECS-Aufgabencontainer ein, um eine Methode für die Interaktion mit dem Container-Agent-API-Endpunkt bereitzustellen. Jeder Endpunkt umfasst einen /start-, /stop- und /status-Endpunkt. Die Endpunkte akzeptieren nur Anfragen von Aufgaben, für die die Fehlerinjektion aktiviert wurde, und für jeden Endpunkt gilt ein Ratenlimit von 1 Anfrage pro 5 Sekunden pro Container. Eine Überschreitung dieser Grenze führt zu einem Fehler.

Anmerkung

Amazon ECS Agent version 1.88.0+ ist erforderlich, um die Fehlerinjektions-Endpunkte zu verwenden.

Die drei Endpunkte für die Verwendung mit Fehlerinjektion sind:

Eine erfolgreiche Anfrage führt zu einem Antwortcode von 200 mit der Meldung running, wenn Sie den /start-Endpunkt aufrufen, stopped für den /stop-Endpunkt und running oder not-running für den /status-Endpunkt.

{ "Status": <string> }

Eine erfolglose Anfrage gibt einen der folgenden Fehlercodes zurück:

  • 400 – Inkorrekte Anfrage

  • 409 – Eine Fehlerinjektions-Anfrage kollidiert mit einem anderen laufenden Fehler

  • 429 – Die Anforderung wurde gedrosselt

  • 500 – Auf dem Server ist ein unerwarteter Fehler aufgetreten

{ "Error": <string message> }
Anmerkung

Es kann entweder ein Netzwerklatenzfehler oder ein Netzwerkpaketverlust gleichzeitig injiziert werden. Der Versuch, mehr als einen Fehler zu injizieren, führt dazu, dass die Anfrage abgelehnt wird.

Netzwerk-Blackhole-Port-Endpunkt

Der {ECS_AGENT_URI}/fault/v1/network-blackhole-port-Endpunkt leitet eingehenden oder ausgehenden Datenverkehr für einen bestimmten Port und ein bestimmtes Protokoll im Netzwerk-Namespace einer Aufgabe ab und ist mit zwei Modi kompatibel:

  • awsvpc – Die Änderungen werden auf den Netzwerk-Namespace der Aufgabe angewendet

  • host – Die Änderungen werden auf die standardmäßige Netzwerk-Namespace-Container-Instance angewendet

{ECS_AGENT_URI}/fault/v1/network-blackhole-port/start

Dieser Endpunkt startet die Netzwerk-Blackhole-Port-Fehlerinjektionen und hat die folgenden Parameter:

Port

Der angegebene Port, der für die Blackhole-Port-Fehlerinjektion verwendet werden soll.

Typ: Ganzzahl

Erforderlich: Ja

Protocol (Protokoll)

Das Protokoll, das für die Blackhole-Port-Fehlerinjektion verwendet werden soll.

Typ: Zeichenfolge

Zulässige Werte: tcp | udp

Erforderlich: Ja

TrafficType

Der von der Fehlerinjektion verwendete Datenverkehrstyp.

Typ: Zeichenfolge

Zulässige Werte: ingress | egress

Erforderlich: Ja

SourcesToFilter

Ein JSON-Array von IPv6 Adressen IPv4 oder CIDR-Blöcken, die vor dem Fehler geschützt sind.

Typ: Zeichenfolgen-Array

Erforderlich: Nein

Im Folgenden finden Sie ein Beispiel für eine Anfrage zur Verwendung des start Endpunkts (ersetzen Sie die red Werte durch Ihre eigenen):

Endpoint: ${ECS_AGENT_URI}/fault/v1/network-blackhole-port/start Http method:POST Request payload: { "Port": 1234, "Protocol": "tcp|udp", "TrafficType": "ingress|egress" "SourcesToFilter": ["${IP1}", "${IP2}", ...], }

{ECS_AGENT_URI}/fault/v1/network-blackhole-port/stop

Dieser Endpunkt stoppt den in der Anforderung angegebenen Fehler. Dieser Endpunkt hat die folgenden Parameter:

Port

Der Port, der von dem Fehler betroffen ist und gestoppt werden sollte.

Typ: Ganzzahl

Erforderlich: Ja

Protocol (Protokoll)

Das zu verwendende Protokoll, um den Fehler zu beheben.

Typ: Zeichenfolge

Zulässige Werte: tcp | udp

Erforderlich: Ja

TrafficType

Der von der Fehlerinjektion verwendete Datenverkehrstyp.

Typ: Zeichenfolge

Zulässige Werte: ingress | egress

Erforderlich: Ja

Im Folgenden finden Sie eine Beispielanforderung für die Verwendung des stop Endpunkts (ersetzen Sie die red Werte durch Ihre eigenen):

Endpoint: ${ECS_AGENT_URI}/fault/v1/network-blackhole-port/stop Http method: POST Request payload: { "Port": 1234, "Protocol": "tcp|udp", "TrafficType": "ingress|egress", }

{ECS_AGENT_URI}/fault/v1/network-blackhole-port/status

Dieser Endpunkt wird verwendet, um den Status der Fehlerinjektion zu überprüfen. Dieser Endpunkt hat die folgenden Parameter:

Port

Der betroffene Port, um den Status des Fehlers zu überprüfen.

Typ: Ganzzahl

Erforderlich: Ja

Protocol (Protokoll)

Das Protokoll, das verwendet werden soll, um den Status des Fehlers zu überprüfen.

Typ: Zeichenfolge

Zulässige Werte: tcp | udp

Erforderlich: Ja

TrafficType

Der von der Fehlerinjektion verwendete Datenverkehrstyp.

Typ: Zeichenfolge

Zulässige Werte: ingress | egress

Erforderlich: Ja

Im Folgenden finden Sie eine Beispielanforderung für die Verwendung des status Endpunkts (ersetzen Sie die red Werte durch Ihre eigenen):

Endpoint: ${ECS_AGENT_URI}/fault/v1/network-blackhole-port/status Http method: POST Request payload: { "Port": 1234, "Protocol": "tcp|udp", "TrafficType": "ingress|egress", }

Netzwerklatenzendpunkt

Der {ECS_AGENT_URI}/fault/v1/network-latency-Endpunkt fügt der Netzwerkschnittstelle der Aufgabe Verzögerung und Jitter für den Datenverkehr zu bestimmten Quellen hinzu. Der Endpunkt ist mit zwei Modi kompatibel:

  • awsvpc – Die Änderungen werden auf die Netzwerkschnittstelle der Aufgabe angewendet

  • host – Die Änderungen werden auf die Standard-Netzwerkschnittstelle angewendet

{ECS_AGENT_URI}/fault/v1/network-latency/start

Dieser /start-Endpunkt beginnt mit der Netzwerklatenz-Fehlerinjektion und hat die folgenden Parameter:

DelayMilliseconds

Die Anzahl der Millisekunden Verzögerung, die der Netzwerkschnittstelle hinzugefügt werden muss, um sie für die Fehlerinjektion zu verwenden.

Typ: Ganzzahl

Erforderlich: Ja

JitterMilliseconds

Die Anzahl der Millisekunden Jitter, die der Netzwerkschnittstelle hinzugefügt werden muss, um sie für die Fehlerinjektion zu verwenden.

Typ: Ganzzahl

Erforderlich: Ja

Quellen

Ein JSON-Array von IPv6 Adressen IPv4 oder CIDR-Blöcken, die als Ziel für die Verwendung mit Fault Injection dienen.

Typ: Zeichenfolgen-Array

Erforderlich: Ja

SourcesToFilter

Ein JSON-Array von IPv6 Adressen IPv4 oder CIDR-Blöcken, die vor dem Fehler geschützt sind. SourcesToFilterhat Vorrang vor. Sources

Typ: Zeichenfolgen-Array

Erforderlich: Nein

Im Folgenden finden Sie eine Beispielanforderung für die Verwendung des /start Endpunkts (ersetzen Sie die red Werte durch Ihre eigenen):

Endpoint: ${ECS_AGENT_URI}/fault/v1/network-latency/start Http method: POST Request payload: { "DelayMilliseconds": 123, "JitterMilliseconds": 123, "Sources": ["${IP1}", "${IP2}", ...], "SourcesToFilter": ["${IP1}", "${IP2}", ...], }

{ECS_AGENT_URI}/fault/v1/network-latency/stop and /status

Der {ECS_AGENT_URI}/fault/v1/network-latency/stop-Endpunkt stoppt den Fehler und der {ECS_AGENT_URI}/fault/v1/network-latency/status überprüft dann den Status des Fehlers.

Im Folgenden finden Sie zwei Beispielanfragen für die Verwendung der Endpunkte /stop und /status. Beide verwenden die POST HTTP-Methode.

Endpoint: ${ECS_AGENT_URI}/fault/v1/network-latency/stop
Endpoint: ${ECS_AGENT_URI}/fault/v1/network-latency/status

Endpunkt für Netzwerkpaketverlust

Der {ECS_AGENT_URI}/fault/v1/network-packet-loss-Endpunkt fügt der angegebenen Netzwerkschnittstelle Paketverlust hinzu. Der Endpunkt ist mit zwei Modi kompatibel:

  • awsvpc – Die Änderungen werden auf die Netzwerkschnittstelle der Aufgabe angewendet

  • host – Die Änderungen werden auf die Standard-Netzwerkschnittstelle angewendet

{ECS_AGENT_URI}/fault/v1/network-packet-loss/start

Dieser /start-Endpunkt beginnt mit der Netzwerk-Paketverlust-Fehlerinjektion und hat die folgenden Parameter:

LossPercent

Der Prozentsatz des Paketverlusts

Typ: Ganzzahl

Erforderlich: Ja

Quellen

Ein JSON-Array von IPv6 Adressen IPv4 oder CIDR-Blöcken, das für die Fehlerinjektionstests verwendet werden soll.

Typ: Zeichenfolgen-Array

Erforderlich: Ja

SourcesToFilter

Ein JSON-Array von IPv6 Adressen IPv4 oder CIDR-Blöcken, die vor dem Fehler geschützt sind. SourcesToFilterhat Vorrang vor. Sources

Typ: Zeichenfolgen-Array

Erforderlich: Nein

Im Folgenden finden Sie eine Beispielanforderung für die Verwendung des start Endpunkts (ersetzen Sie die red Werte durch Ihre eigenen):

Endpoint: ${ECS_AGENT_URI}/fault/v1/network-packet-loss/start Http method: POST { "LossPercent": 6, "Sources": ["${IP1}", "${IP2}", ...], "SourcesToFilter": ["${IP1}", "${IP2}", ...], }

{ECS_AGENT_URI}/fault/v1/network-packet-loss/stop and /status

Der {ECS_AGENT_URI}/fault/v1/network-packet-loss/stop-Endpunkt stoppt den Fehler und der {ECS_AGENT_URI}/fault/v1/network-packet-loss/status überprüft dann den Status des Fehlers. Es wird jeweils nur einer von jedem Fehlertyp unterstützt.

Im Folgenden finden Sie zwei Beispielanfragen für die Verwendung der Endpunkte /stop und /status. Beide verwenden die POST HTTP-Methode.

Endpoint: ${ECS_AGENT_URI}/fault/v1/network-packet-loss/stop
Endpoint: ${{ECS_AGENT_URI}/fault/v1/network-packet-loss/status