Amazon ECS 錯誤注入端點 - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon ECS 錯誤注入端點

Amazon ECS 容器代理程式會自動將 ECS_AGENT_URI 環境變體注入 Amazon ECS 任務的容器中,以提供與容器代理程式 API 端點互動的方法。每個端點都包含 /start/stop/status端點。端點只接受來自已啟用錯誤注入之任務的請求,且每個端點的速率限制為每個容器每 51 個請求。超過此限制會導致錯誤。

注意

Amazon ECS Agent version 1.88.0+ 需要使用故障注入端點。

搭配錯誤注入使用的三個端點為:

成功的請求會產生回應代碼 200,並在running您呼叫/start端點、stopped端點/stoprunning/status端點時顯示訊息 not-running

{ "Status": <string> }

失敗的請求會傳回下列其中一個錯誤代碼:

  • 400 ‐ 錯誤的請求

  • 409 ‐ 錯誤注入請求與另一個執行中的錯誤衝突

  • 429 ‐ 請求已調節

  • 500 ‐ 伺服器發生未預期的錯誤

{ "Error": <string message> }
注意

一次可以插入一個網路延遲錯誤或一個網路封包遺失錯誤。嘗試注入多個結果會導致請求遭到拒絕。

網路黑洞連接埠端點

{ECS_AGENT_URI}/fault/v1/network-blackhole-port 端點會捨棄任務網路命名空間中特定連接埠和通訊協定的傳入或傳出流量,並與兩種模式相容:

  • awsvpc - 變更會套用至任務網路命名空間

  • 主機 - 變更會套用至預設網路命名空間容器執行個體

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

此端點會啟動網路黑洞連接埠故障注入,並具有下列參數:

連線埠

用於黑洞連接埠故障注入的指定連接埠。

類型:整數

必要:是

通訊協定

用於黑洞連接埠故障注入的通訊協定。

類型:字串

有效值:tcp | udp

必要:是

TrafficType

錯誤注入所使用的流量類型。

類型:字串

有效值:ingress | egress

必要:是

SourcesToFilter

受保護免於故障的 IPv4 地址或 CIDR 區塊的 JSON 陣列。

類型:字串陣列

必要:否

以下是使用 start端點的範例請求 (將紅色值取代為您自己的值):

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

此端點會停止請求中指定的錯誤。此端點具有下列參數:

連線埠

受到應停止之錯誤影響的連接埠。

類型:整數

必要:是

通訊協定

用來停止故障的通訊協定。

類型:字串

有效值:tcp | udp

必要:是

TrafficType

錯誤注入所使用的流量類型。

類型:字串

有效值:ingress | egress

必要:是

以下是使用 stop端點的範例請求 (將紅色值取代為您自己的值):

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

此端點用於檢查故障注入的狀態。此端點具有下列參數:

連線埠

要檢查故障狀態的受影響連接埠。

類型:整數

必要:是

通訊協定

檢查故障狀態時使用的通訊協定。

類型:字串

有效值:tcp | udp

必要:是

TrafficType

錯誤注入所使用的流量類型。

類型:字串

有效值:ingress | egress

必要:是

以下是使用status端點的範例請求 (將紅色值取代為您自己的值):

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

網路延遲端點

{ECS_AGENT_URI}/fault/v1/network-latency 端點將延遲和抖動新增至任務的網路界面,以將流量傳送至特定來源。端點與兩種模式相容:

  • awsvpc - 變更會套用至任務網路界面

  • 主機 - 變更會套用至預設網路界面

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

/start端點會開始網路延遲錯誤注入,並具有下列參數:

DelayMilliseconds

要新增至網路界面以用於錯誤注入的延遲毫秒數。

類型:整數

必要:是

JitterMilliseconds

要新增至網路界面以用於錯誤注入的抖動毫秒數。

類型:整數

必要:是

來源

IPv4 地址或 CIDR 區塊的 JSON 陣列,其目的地為 ,可與錯誤注入搭配使用。

類型:字串陣列

必要:是

SourcesToFilter

受保護免於故障的 IPv4 地址或 CIDR 區塊的 JSON 陣列。 SourcesToFilter 的優先順序高於 Sources

類型:字串陣列

必要:否

以下是使用/start端點的範例請求 (使用您自己的值取代紅色值):

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 和 /status

{ECS_AGENT_URI}/fault/v1/network-latency/stop 端點會停止故障,而 會{ECS_AGENT_URI}/fault/v1/network-latency/status檢查故障的狀態。

以下是使用 /stop/status端點的兩個範例請求。兩者都使用 POST HTTP方法。

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

網路封包遺失端點

{ECS_AGENT_URI}/fault/v1/network-packet-loss 端點會將封包遺失新增至指定的網路介面。此端點與兩種模式相容:

  • awsvpc - 變更會套用至任務網路界面

  • 主機 - 變更會套用至預設網路介面

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

/start端點會開始網路封包遺失故障注入,並具有下列參數:

LossPercent

封包遺失的百分比

類型:整數

必要:是

來源

用於錯誤注入測試的 IPv4 地址或 CIDR 區塊的 JSON 陣列。

類型:字串陣列

必要:是

SourcesToFilter

受保護免於故障的 IPv4 地址或 CIDR 區塊的 JSON 陣列。 SourcesToFilter 的優先順序高於 Sources

類型:字串陣列

必要:否

以下是使用start端點的範例請求 (將紅色值取代為您自己的值):

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 和 /status

{ECS_AGENT_URI}/fault/v1/network-packet-loss/stop 端點會停止故障,並{ECS_AGENT_URI}/fault/v1/network-packet-loss/status檢查故障的狀態。一次僅支援每種類型的故障之一。

以下是使用 /stop/status端點的兩個範例請求。兩者都使用 POST HTTP方法。

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