Puntos de conexión de inyección de errores de Amazon ECS - Amazon Elastic Container Service

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