モック エラーを含むファイルからランダムに選択されたエラーで要求が失敗します。
構成の例
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
"plugins": [
{
"name": "GenericRandomErrorPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "genericRandomErrorPlugin"
}
],
"urlsToWatch": [
"https://api.openai.com/*"
],
"genericRandomErrorPlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/genericrandomerrorplugin.schema.json",
"errorsFile": "errors.json"
}
}
構成プロパティ
| 財産 | 形容 | デフォルト |
|---|---|---|
errorsFile |
エラー応答を含むファイルへのパス。 | errors.json |
rate |
ランダム エラーで失敗する要求の割合。 0 ~ 100 の値。 | 50 |
retryAfterInSeconds |
要求を再試行するまでに待機する秒数。 動的スロットル用の Retry-After 応答ヘッダーに含まれます。 |
5 |
コマンド ライン オプション
| 名前 | 形容 | デフォルト |
|---|---|---|
-f, --failure-rate <failure rate> |
ランダム エラーで失敗する要求の割合。 0 ~ 100 の値。 | 50 |
注釈
応答本文
エラー応答の body プロパティを JSON オブジェクトまたは配列に設定すると、Dev Proxy によって JSON にシリアル化されます。 文字列に設定すると、Dev Proxy は引用符を囲まずに as-is文字列を送信します。
@で始まる文字列は、エラー ファイルを基準にしたファイルへのパスとして、応答本文と共に扱われます。 開発プロキシでは既定で Content-Type ヘッダーがapplication/jsonされるため、text/plainなどの JSON 以外のコンテンツを返すときに、Content-Type ヘッダーをコンテンツと一致するように設定します。
応答ごとの Retry-After 値
開発プロキシは、429、503、529など、状態コードのRetry-After ヘッダー内の@dynamicを解決します。 大文字と小文字に関係なく、ヘッダー名と一致します。
@dynamicが解決されると、要求も RetryAfterPlugin に登録されます。この要求は、Retry-After時間が稼働する前にアプリから送信された要求を報告します。
既定では、 Retry-After ヘッダーはグローバル retryAfterInSeconds 値を使用します。 エラー応答ファイルの @dynamic=N 構文を使用して、応答ごとにこの値をオーバーライドできます。ここで、 N は再試行するまでの待機時間の秒数です。
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/genericrandomerrorplugin.errorsfile.schema.json",
"errors": [
{
"request": {
"url": "https://api.openai.com/*"
},
"responses": [
{
"statusCode": 429,
"headers": [
{
"name": "Retry-After",
"value": "@dynamic=17"
}
],
"body": {
"error": {
"message": "Rate limit exceeded. Wait 17 seconds."
}
}
}
]
}
]
}
この例では、Retry-After ヘッダーは、グローバル17設定に関係なく、この応答にretryAfterInSeconds秒を使用します。 この値は、プレーンな @dynamic トークンと同様に、後続の調整された要求ごとにインクリメントされます。
既定の Content-Type ヘッダー
エラー応答に body があり、 Content-Type ヘッダーが定義されていない場合、Dev Proxy は Content-Type: application/json ヘッダーを含む応答を返します。 別のコンテンツ タイプを返すには、エラー ファイルの応答に Content-Type ヘッダーを追加します。 開発プロキシでは、指定した値が使用されます。
次のステップ
Dev Proxy