本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS 錯誤注入端點
Amazon ECS 容器代理程式會自動將 ECS_AGENT_URI
環境變體注入 Amazon ECS 任務的容器中,以提供與容器代理程式 API 端點互動的方法。每個端點都包含 /start
、 /stop
和 /status
端點。端點只接受來自已啟用錯誤注入之任務的請求,且每個端點的速率限制為每個容器每 5 秒 1 個請求。超過此限制會導致錯誤。
注意
Amazon ECS Agent version 1.88.0+
需要使用故障注入端點。
搭配錯誤注入使用的三個端點為:
成功的請求會產生回應代碼 200
,並在running
您呼叫/start
端點、stopped
端點/stop
和 running
或/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