Endpoints para injeção de falhas do Amazon ECS - Amazon Elastic Container Service

Endpoints para injeção de falhas do Amazon ECS

O agente de contêiner do Amazon ECS injeta automaticamente a variável de ambiente ECS_AGENT_URI nos contêineres de tarefas do Amazon ECS para fornecer um método de interação com o endpoint da API do agente de contêiner. Cada endpoint inclui um endpoint /start, /stop e /status. Esses endpoints somente aceitam solicitações de tarefas que habilitaram a injeção de falhas, e cada um tem um limite de taxa de 1 solicitação a cada 5 segundos por contêiner. Exceder o limite resulta em um erro.

nota

O Agente do Amazon ECS version 1.88.0+ é necessário para utilizar endpoints de injeção de falhas.

Os três endpoints para uso com a injeção de falhas são:

Uma solicitação com êxito resulta em um código de resposta 200 com uma mensagem de running ao chamar o endpoint /start, stopped para o endpoint /stop e running ou not-running para o endpoint /status.

{ "Status": <string> }

Uma solicitação sem êxito retorna um destes códigos de erro:

  • 400: solicitação inválida

  • 409: a solicitação de injeção de falhas está em conflito com outra falha em execução

  • 429: a solicitação foi limitada

  • 500: o servidor teve um erro inesperado

{ "Error": <string message> }
nota

Uma falha de latência de rede ou uma falha de perda de pacote de rede pode ser injetada por vez. A tentativa de injetar mais de uma faz com que a solicitação seja rejeitada.

Endpoint de porta de buraco negro de rede

O endpoint {ECS_AGENT_URI}/fault/v1/network-blackhole-port elimina o tráfego de entrada ou saída de uma porta e protocolo específicos no namespace de rede de uma tarefa e é compatível com dois modos:

  • awsvpc: as alterações são aplicadas ao namespace da rede de tarefas

  • host: as alterações são aplicadas à instância de contêiner do namespace de rede padrão

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

Esse endpoint inicia as injeções de falha na porta de buraco negro de rede e inclui os seguintes parâmetros:

Porta

A porta especificada para uso na injeção de falhas na porta de buraco negro.

Tipo: inteiro

Obrigatório: Sim

Protocolo

O protocolo para uso na injeção de falhas na porta de buraco negro.

Tipo: String

Valores válidos: tcp | udp

Obrigatório: Sim

TrafficType

O tipo de tráfego utilizado pela injeção de falhas.

Tipo: String

Valores válidos: ingress | egress

Obrigatório: Sim

SourcesToFilter

Uma matriz JSON de endereços IPv4 ou blocos CIDR protegidos contra a falha.

Tipo: matriz de strings

Obrigatório: Não

O exemplo a seguir mostra como utilizar o endpoint start (substitua os valores em vermelho pelos seus próprios):

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

Esse endpoint interrompe a falha especificada na solicitação. Esse endpoint tem os seguintes parâmetros:

Porta

A porta afetada pela falha que deve ser interrompida.

Tipo: inteiro

Obrigatório: Sim

Protocolo

O protocolo a ser usado para interromper essa falha.

Tipo: String

Valores válidos: tcp | udp

Obrigatório: Sim

TrafficType

O tipo de tráfego utilizado pela injeção de falhas.

Tipo: String

Valores válidos: ingress | egress

Obrigatório: Sim

O exemplo a seguir mostra como utilizar o endpoint stop (substitua os valores em vermelho pelos seus próprios):

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

Esse endpoint é usado para verificar o status da injeção de falhas. Esse endpoint tem os seguintes parâmetros:

Porta

A porta afetada para verificar o status da falha.

Tipo: inteiro

Obrigatório: Sim

Protocolo

O protocolo a ser utilizado ao verificar o status da falha.

Tipo: String

Valores válidos: tcp | udp

Obrigatório: Sim

TrafficType

O tipo de tráfego utilizado pela injeção de falhas.

Tipo: String

Valores válidos: ingress | egress

Obrigatório: Sim

O exemplo a seguir mostra como utilizar o endpoint status (substitua os valores em vermelho pelos seus próprios):

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

Endpoint de latência da rede

O endpoint {ECS_AGENT_URI}/fault/v1/network-latency adiciona atraso e instabilidade à interface de rede da tarefa para o tráfego para uma origem específica. O endpoint é compatível com dois modos:

  • awsvpc: as alterações são aplicadas à interface de rede da tarefa

  • host: as alterações são aplicadas à interface de rede padrão

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

Esse endpoint /start inicia a injeção de falha de latência da rede e tem os seguintes parâmetros:

DelayMilliseconds

O número de milissegundos de atraso a serem adicionados à interface de rede para uso na injeção de falhas.

Tipo: inteiro

Obrigatório: Sim

JitterMilliseconds

O número de milissegundos de instabilidade a serem adicionados à interface de rede para uso na injeção de falhas.

Tipo: inteiro

Obrigatório: Sim

Origens

Uma matriz JSON de endereços IPv4 ou blocos CIDR que são destinos para uso com a injeção de falhas.

Tipo: matriz de strings

Obrigatório: Sim

SourcesToFilter

Uma matriz JSON de endereços IPv4 ou blocos CIDR protegidos contra a falha. SourcesToFilter tem prioridade sobre Sources.

Tipo: matriz de strings

Obrigatório: Não

O exemplo a seguir mostra como utilizar o endpoint /start (substitua os valores em vermelho pelos seus próprios):

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

O endpoint {ECS_AGENT_URI}/fault/v1/network-latency/stop interrompe a falha, e o {ECS_AGENT_URI}/fault/v1/network-latency/status verifica o status da falha.

Veja a seguir dois exemplos de solicitações para usar os endpoints /stop e /status. Ambos utilizam o método POST HTTP.

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

Endpoint de perda de pacotes de rede

O endpoint {ECS_AGENT_URI}/fault/v1/network-packet-loss adiciona perda de pacotes à interface de rede fornecida. Esse endpoint é compatível com dois modos:

  • awsvpc: as alterações são aplicadas à interface de rede da tarefa

  • host: as alterações são aplicadas à interface de rede padrão

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

Esse endpoint /start inicia a injeção de falha de perda de pacotes de rede e tem os seguintes parâmetros:

LossPercent

A porcentagem de perda de pacotes

Tipo: inteiro

Obrigatório: Sim

Origens

Uma matriz JSON de endereços IPv4 ou blocos CIDR a serem usados para os testes de injeção de falhas.

Tipo: matriz de strings

Obrigatório: Sim

SourcesToFilter

Uma matriz JSON de endereços IPv4 ou blocos CIDR protegidos contra a falha. SourcesToFilter tem prioridade sobre Sources.

Tipo: matriz de strings

Obrigatório: Não

O exemplo a seguir mostra como utilizar o endpoint start (substitua os valores em vermelho pelos seus próprios):

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

O endpoint {ECS_AGENT_URI}/fault/v1/network-packet-loss/stop interrompe a falha, e o {ECS_AGENT_URI}/fault/v1/network-packet-loss/status verifica o status da falha. Somente um de cada tipo de falha é compatível de cada vez.

Veja a seguir dois exemplos de solicitações para usar os endpoints /stop e /status. Ambos utilizam o método POST HTTP.

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