Skip to content

Commit ecd1b7a

Browse files
committed
Adding special scale out header to 429 responses
1 parent 7945f7a commit ecd1b7a

File tree

3 files changed

+7
-1
lines changed

3 files changed

+7
-1
lines changed

src/WebJobs.Script.WebHost/WebScriptHostRequestManager.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,10 @@ protected override HttpResponseMessage RejectRequest(HttpRequestMessage request)
5656
var function = request.GetPropertyOrDefault<FunctionDescriptor>(ScriptConstants.AzureFunctionsHttpFunctionKey);
5757
_metricsLogger.LogEvent(MetricEventNames.FunctionInvokeThrottled, function.Name);
5858

59-
return base.RejectRequest(request);
59+
var response = base.RejectRequest(request);
60+
response.Headers.Add(ScriptConstants.AntaresScaleOutHeaderName, "1");
61+
62+
return response;
6063
}
6164
}
6265
}

src/WebJobs.Script/ScriptConstants.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ public static class ScriptConstants
5555
public const string DefaultFunctionKeyName = "default";
5656

5757
public const string AntaresLogIdHeaderName = "X-ARR-LOG-ID";
58+
public const string AntaresScaleOutHeaderName = "X-FUNCTION-SCALEOUT";
5859
public const string DynamicSku = "Dynamic";
5960
public const string DefaultProductionSlotName = "production";
6061

test/WebJobs.Script.Tests/WebScriptHostRequestManagerTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ public async Task ProcessRequestAsync_PerformanceThrottle_ReturnsExpectedResult(
8282
for (int i = 0; i < 3; i++)
8383
{
8484
response = await _requestManager.ProcessRequestAsync(request, ProcessRequest, CancellationToken.None);
85+
var scaleOutHeader = response.Headers.GetValues(ScriptConstants.AntaresScaleOutHeaderName).Single();
86+
Assert.Equal("1", scaleOutHeader);
8587
Assert.Equal((HttpStatusCode)429, response.StatusCode);
8688
await Task.Delay(100);
8789
}

0 commit comments

Comments
 (0)