Puntos de conexión de inyección de errores de Amazon ECS
El agente del contenedor de Amazon ECS inyecta automáticamente la variable de entorno ECS_AGENT_URI
en los contenedores de las tareas de Amazon ECS para proporcionar un método que permita interactuar con el punto de conexión de la API del agente de contenedor. Cada punto de conexión incluye un punto de conexión de /start
, /stop
y /status
Los puntos de conexión solo aceptan solicitudes de tareas que tengan habilitada la inyección de errores, y cada punto de conexión tiene un límite de velocidad de 1 solicitud cada 5 segundos por contenedor. Si se supera el límite, se produce un error.
Los tres puntos de conexión que se utilizan con la inyección de errores son:
Si la solicitud se realiza correctamente, se obtiene un código de respuesta 200
con un mensaje de running
cuando se llama al punto de conexión de /start
, stopped
para el punto de conexión de /stop
y running
o not-running
para el punto de conexión de /status
.
{ "Status": <string> }
Si la solicitud no se realiza correctamente, se devuelve uno de los siguientes códigos de error:
-
400
: solicitud errónea -
409
: la solicitud de inyección de errores entra en conflicto con otro error de ejecución -
429
: la solicitud se ha limitado -
500
: se presentó un error inesperado en el servidor
{ "Error": <string message> }
nota
Se puede inyectar un error de latencia de red o un error de pérdida de paquetes de red cada vez. Si se intenta inyectar más de uno, se rechazará la solicitud.
Punto de conexión del puerto blackhole de la red
El punto de conexión de {ECS_AGENT_URI}/fault/v1/network-blackhole-port
descarta el tráfico entrante o saliente para un puerto y protocolo específicos en el espacio de nombres de red de una tarea y es compatible con dos modos:
-
awsvp: los cambios se aplican al espacio de nombres de la red de la tarea
-
host: los cambios se aplican a la instancia de contenedor de espacio de nombres de red predeterminada
{ECS_AGENT_URI}/fault/v1/network-blackhole-port/start
Este punto de conexión inicia las inyecciones de errores en el puerto blackhole de la red y tiene los siguientes parámetros:
Puerto
El puerto especificado que se utilizará para la inyección de errores del puerto blackhole.
Tipo: entero
Obligatorio: sí
Protocolo
El protocolo que se utilizará para la inyección de errores en el puerto blackhole.
Tipo: cadena
Valores válidos: tcp | udp
Obligatorio: sí
TrafficType
El tipo de tráfico que la inyección de errores utiliza.
Tipo: cadena
Valores válidos: ingress | egress
Obligatorio: sí
SourcesToFilter
Una matriz JSON de direcciones IPv4 o bloques CIDR que están protegidos frente al error.
Tipo: matriz de cadenas
Requerido: no
A continuación, se muestra un ejemplo de solicitud para utilizar el punto de conexión de start
(sustituya los valores en rojo
por valores propios):
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
Este punto de conexión detiene el error especificado en la solicitud. Este punto de conexión tiene los siguientes parámetros:
Puerto
El puerto afectado por el error que se debe detener.
Tipo: entero
Obligatorio: sí
Protocolo
El protocolo que se utilizará para detener el error.
Tipo: cadena
Valores válidos: tcp | udp
Obligatorio: sí
TrafficType
El tipo de tráfico que la inyección de errores utiliza.
Tipo: cadena
Valores válidos: ingress | egress
Obligatorio: sí
A continuación, se muestra un ejemplo de solicitud para utilizar el punto de conexión de stop
(sustituya los valores en rojo
por valores propios):
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
Este punto de conexión se utiliza para comprobar el estado de la inyección de errores. Este punto de conexión tiene los siguientes parámetros:
Puerto
El puerto afectado para comprobar el estado del error.
Tipo: entero
Obligatorio: sí
Protocolo
El protocolo que se utilizará al comprobar el estado del error.
Tipo: cadena
Valores válidos: tcp | udp
Obligatorio: sí
TrafficType
El tipo de tráfico que la inyección de errores utiliza.
Tipo: cadena
Valores válidos: ingress | egress
Obligatorio: sí
A continuación, se muestra un ejemplo de solicitud para utilizar el punto de conexión de status
(sustituya los valores en rojo
por valores propios):
Endpoint: ${ECS_AGENT_URI}/fault/v1/network-blackhole-port/status Http method: POST Request payload: { "Port":
1234
, "Protocol": "tcp|udp", "TrafficType": "ingress|egress", }
Punto de conexión de latencia de red
El punto de conexión de {ECS_AGENT_URI}/fault/v1/network-latency
agrega retardo y fluctuación a la interfaz de red de la tarea para el tráfico a determinados orígenes. El punto de conexión es compatible con dos modos:
-
awsvpc: los cambios se aplican a la interfaz de red de la tarea
-
host: los cambios se aplican a la interfaz de red predeterminada
{ECS_AGENT_URI}/fault/v1/network-latency/start
Este punto de conexión inicia la inyección de errores de latencia de la red y tiene los siguientes parámetros:
DelayMilliseconds
La cantidad de milisegundos de retardo que se agregarán a la interfaz de red que se utilizará para la inyección de errores.
Tipo: entero
Obligatorio: sí
JitterMilliseconds
La cantidad de milisegundos de fluctuación que se agregarán a la interfaz de red que se utilizará para la inyección de errores.
Tipo: entero
Obligatorio: sí
Orígenes
Una matriz JSON de direcciones IPv4 o bloques de CIDR que son destino para su uso con inyección de errores.
Tipo: matriz de cadenas
Obligatorio: sí
SourcesToFilter
Una matriz JSON de direcciones IPv4 o bloques CIDR protegidos frente al error. SourcesToFilter
tiene prioridad sobre Sources
.
Tipo: matriz de cadenas
Requerido: no
A continuación, se muestra un ejemplo de solicitud para utilizar el punto de conexión de /start
(sustituya los valores en rojo
por valores propios):
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
El punto de conexión de {ECS_AGENT_URI}/fault/v1/network-latency/stop
detiene el error, mientras que {ECS_AGENT_URI}/fault/v1/network-latency/status
comprueba el estado del error.
Los siguientes son dos ejemplos de solicitudes para utilizar los puntos de conexión de /stop
y /status
. Ambos utilizan el método POST HTTP
.
Endpoint: ${ECS_AGENT_URI}/fault/v1/network-latency/stop
Endpoint: ${ECS_AGENT_URI}/fault/v1/network-latency/status
Punto de conexión de pérdida de paquetes de red
El punto de conexión de {ECS_AGENT_URI}/fault/v1/network-packet-loss
agrega la pérdida de paquetes a la interfaz de red dada. Este punto de conexión es compatible con dos modos:
-
awsvpc: los cambios se aplican a la interfaz de red de la tarea
-
host: los cambios se aplican a la interfaz de red predeterminada
{ECS_AGENT_URI}/fault/v1/network-packet-loss/start
Este punto de conexión de /start
inicia la inyección de errores de pérdida de paquetes de red y tiene los siguientes parámetros:
LossPercent
El porcentaje de pérdida de paquetes
Tipo: entero
Obligatorio: sí
Orígenes
Una matriz JSON de direcciones IPv4 o bloques CIDR a utilizar para las pruebas de inyección de errores.
Tipo: matriz de cadenas
Obligatorio: sí
SourcesToFilter
Una matriz JSON de direcciones IPv4 o bloques CIDR protegidos frente al error. SourcesToFilter
tiene prioridad sobre Sources
.
Tipo: matriz de cadenas
Requerido: no
A continuación, se muestra un ejemplo de solicitud para utilizar el punto de conexión de start
(sustituya los valores en rojo
por valores propios):
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 y /status
El punto de conexión de {ECS_AGENT_URI}/fault/v1/network-packet-loss/stop
detiene el error, mientras que {ECS_AGENT_URI}/fault/v1/network-packet-loss/status
comprueba el estado del error. Solo se admite uno de cada tipo de error a la vez.
Los siguientes son dos ejemplos de solicitudes para utilizar los puntos de conexión de /stop
y /status
. Ambos utilizan el método POST HTTP
.
Endpoint: ${ECS_AGENT_URI}/fault/v1/network-packet-loss/stop
Endpoint: ${{ECS_AGENT_URI}/fault/v1/network-packet-loss/status