失敗對具有隨機錯誤的圖形Microsoft要求。
組態範例
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
"plugins": [
{
"name": "GraphRandomErrorPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "graphRandomErrorPlugin"
}
],
"graphRandomErrorPlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/graphrandomerrorplugin.schema.json",
"allowedErrors": [ 429, 500, 502, 503, 504, 507 ]
}
}
組態屬性
| 財產 | 描述 | 違約 |
|---|---|---|
allowedErrors |
開發 Proxy 可能會產生的 HTTP 狀態代碼清單。 | 429 500 502 503 504 507 |
rate |
要求失敗的百分比,並出現隨機錯誤。 介於 0 和 100 之間的值。 | 50 |
retryAfterInSeconds |
Retry-After 標頭的值,以秒為單位。 |
5 |
命令行選項
| 名字 | 描述 | 違約 |
|---|---|---|
-a, --allowed-errors |
開發 Proxy 可能會產生的 HTTP 狀態代碼清單。 | 429 500 502 503 504 507 |
-f, --failure-rate <failure rate> |
要求失敗的百分比,並出現隨機錯誤。 介於 0 和 100 之間的值。 | 50 |
Microsoft Graph 所使用的 HTTP 錯誤狀態代碼
Microsoft Graph 會使用下列 HTTP 狀態代碼。
| Code | 名字 | 描述 |
|---|---|---|
| 429 | 要求太多 | 表示使用者在指定的時間量中傳送了太多要求(「速率限制」)。 此回應可能包含 Retry-After 標頭,指出在提出新要求之前等待的時間。 |
| 500 | 內部伺服器錯誤 | 表示伺服器遇到無法滿足要求的非預期狀況。 此錯誤回應是一般「全部攔截」回應。 通常,這表示伺服器找不到更好的 5xx 錯誤碼來回應。 |
| 502 | 閘道不正確 | 表示伺服器做為網關或 Proxy 時,收到來自上游伺服器的無效回應。 |
| 503 | 服務無法使用 | 表示伺服器尚未準備好處理要求。 常見原因是維護或多載的伺服器已關閉。 此回應應該用於暫存條件,而且 重試後 HTTP 標頭應該盡可能包含服務復原的估計時間。 |
| 504 | 閘道逾時 | 表示伺服器在做為閘道或 Proxy 時,並未及時收到上游伺服器所需的回應,才能完成要求。 |
| 507 | 記憶體不足 | 可以在 Web Distributed Authoring and Versioning (WebDAV) 通訊協定的內容中提供 (請參閱 RFC 4918)。 指出無法執行方法,因為伺服器無法儲存成功完成要求所需的表示法。 |
備註
Dev Proxy 將模擬的錯誤限制在 Microsoft Graph 對該方法回傳的錯誤中。
GET請求PATCH使用 429、 500、 502、 503504和 。
POST、 PUT,請求 DELETE 也會使用 507。 當你設定 allowedErrors時,Dev Proxy 只會使用適用於每個方法的允許錯誤。 例如,如果你設定 allowedErrors 為 [ 507 ],開發代理會 POST失敗、 PUT、 請求 DELETE ,但不會 GET 或 PATCH 請求。
如果允許的錯誤都不適用於請求的方法,Dev Proxy 會將請求轉交給 Microsoft Graph。 開發代理也會通過使用其他 HTTP 方法(如 HEAD 或 OPTIONS)的請求。 對於批次請求,如果批次中的任何請求沒有允許的錯誤,Dev Proxy 會將整個批次傳送過去,因為批次回應必須包含批次中每個請求的回應。