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 IPv6 ou blocos CIDR protegidos contra 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
Fontes
Uma matriz JSON de endereços IPv4 ou IPv6 ou blocos CIDR que se destinam ao uso com injeção de falhas.
Tipo: matriz de strings
Obrigatório: Sim
SourcesToFilter
Uma matriz JSON de endereços IPv4 ou IPv6 ou blocos CIDR protegidos contra 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
Fontes
Uma matriz JSON de endereços IPv4 ou IPv6 ou blocos CIDR a serem usados para testes de injeção de falhas.
Tipo: matriz de strings
Obrigatório: Sim
SourcesToFilter
Uma matriz JSON de endereços IPv4 ou IPv6 ou blocos CIDR protegidos contra 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