diff --git a/src/WebJobs.Script.WebHost/WebHostServiceCollectionExtensions.cs b/src/WebJobs.Script.WebHost/WebHostServiceCollectionExtensions.cs index 049fd7f4c2..6df2ab1b01 100644 --- a/src/WebJobs.Script.WebHost/WebHostServiceCollectionExtensions.cs +++ b/src/WebJobs.Script.WebHost/WebHostServiceCollectionExtensions.cs @@ -132,7 +132,7 @@ public static void AddWebJobsScriptHost(this IServiceCollection services, IConfi services.AddTransient(); services.AddTransient(); - if (SystemEnvironment.Instance.IsLinuxConsumptionOnLegion()) + if (SystemEnvironment.Instance.IsLinuxConsumptionOnLegion() || SystemEnvironment.Instance.IsFlexConsumptionSku()) { services.AddSingleton(); } diff --git a/test/WebJobs.Script.Tests/Environment/EnvironmentTests.cs b/test/WebJobs.Script.Tests/Environment/EnvironmentTests.cs index 15a54a267f..d601528d2a 100644 --- a/test/WebJobs.Script.Tests/Environment/EnvironmentTests.cs +++ b/test/WebJobs.Script.Tests/Environment/EnvironmentTests.cs @@ -3,6 +3,7 @@ using System; using System.Runtime.InteropServices; +using System.Threading.Tasks; using Microsoft.WebJobs.Script.Tests; using Xunit; using static Microsoft.Azure.WebJobs.Script.EnvironmentSettingNames; @@ -244,6 +245,24 @@ public void Returns_IsLinuxConsumption(string websiteInstanceId, string containe Assert.False(isLinuxConsumptionOnAtlas ? isLinuxConsumptionOnLegion : isLinuxConsumptionOnAtlas); } + [Theory] + [InlineData(ScriptConstants.DynamicSku, "containerName", "", "", false)] + [InlineData(ScriptConstants.DynamicSku, "containerName", "podName", "", false)] + [InlineData(ScriptConstants.DynamicSku, "containerName", "podName", "legionServiceHost", true)] + [InlineData(ScriptConstants.DynamicSku, "containerName", "", "legionServiceHost", true)] + public void Returns_AtlasOrLegionConsumption(string sku, string containerName, string podName, string legionServiceHost, bool legion) + { + var testEnvironment = new TestEnvironment(); + testEnvironment.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebsiteInstanceId, string.Empty); + testEnvironment.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebsiteSku, sku); + testEnvironment.SetEnvironmentVariable(EnvironmentSettingNames.ContainerName, containerName); + testEnvironment.SetEnvironmentVariable(EnvironmentSettingNames.PodName, podName); + testEnvironment.SetEnvironmentVariable(EnvironmentSettingNames.LegionServiceHost, legionServiceHost); + + Assert.Equal(legion, testEnvironment.IsLinuxConsumptionOnLegion()); + Assert.Equal(!legion, testEnvironment.IsLinuxConsumptionOnAtlas()); + } + [Theory] [InlineData(ScriptConstants.ElasticPremiumSku, true)] [InlineData("test", false)]