diff --git a/docs/debug-with-host.md b/docs/debug-with-host.md index 35b265c09..b44bc020a 100644 --- a/docs/debug-with-host.md +++ b/docs/debug-with-host.md @@ -57,6 +57,10 @@ export FUNC_CLI= # Start the host inside the test app directory $FUNC_CLI start + +# Or, you can use an alias instead +alias testfunc="" +testfunc start ``` Windows: diff --git a/release_notes.md b/release_notes.md index 513496178..1f9ad364f 100644 --- a/release_notes.md +++ b/release_notes.md @@ -1,4 +1,4 @@ -# Azure Functions CLI 4.6.0 +# Azure Functions CLI 4.7.0 #### Host Version @@ -9,18 +9,4 @@ #### Changes -- Fix .gitignore to allow PowerShell module bin folders (#4574) -- Refactor to use msbuild for determining .NET target framework & add support multiple TFMs (#4715) - - When using `func init --docker-only` on a .NET project with multiple target frameworks, the CLI will now - prompt the user to select which target framework to use for the Dockerfile. -- Enhanced dotnet installation discovery by adopting the same `Muxer` logic used by the .NET SDK itself (#4732) -- Update .NET templates package version to 4.0.5337 (#4728) -- Fix `func pack --build-native-deps` failure on Windows for Python 3.13+ (#4742) -- Add deprecation warning for extension bundles during function app publish (#4700) -- Update the TypeScript project template to improve interoperability (#4739) - - Upgrade `typescript` from `^4.0.0` to `^5.0.0` - - Add `"esModuleInterop": true` option to `tsconfig.json` -- Cleaned up `func --help` output and fixed validation errors when using the `--help` flag for specific commands (#4748) -- Improved `func init --help` output to better display options for each worker runtime (#4748) -- Fix F# project & template initialization via `func init | new` (#4749) -- Log a warning if remote build is used for Python 3.14 flex app (#4755) +- Added end-of-life warnings for all runtime versions during `func azure functionapp publish`. (#4760) diff --git a/src/Cli/func/Actions/AzureActions/PublishFunctionAppAction.cs b/src/Cli/func/Actions/AzureActions/PublishFunctionAppAction.cs index c8365193f..d5563f74e 100644 --- a/src/Cli/func/Actions/AzureActions/PublishFunctionAppAction.cs +++ b/src/Cli/func/Actions/AzureActions/PublishFunctionAppAction.cs @@ -169,6 +169,9 @@ public override async Task RunAsync() // Get the WorkerRuntime var workerRuntime = GlobalCoreToolsSettings.CurrentWorkerRuntime; + // Get Stacks once for both .NET version determination and EOL checking + var stacks = await AzureHelper.GetFunctionsStacks(AccessToken, ManagementURL); + // Determine the appropriate default targetFramework // TODO: Include proper steps for publishing a .NET Framework 4.8 application if (workerRuntime == WorkerRuntime.DotnetIsolated) @@ -182,16 +185,8 @@ public override async Task RunAsync() if (majorDotnetVersion != null) { - // Get Stacks - var stacks = await AzureHelper.GetFunctionsStacks(AccessToken, ManagementURL); - var runtimeSettings = stacks.GetRuntimeSettings(majorDotnetVersion.Value, out bool isLTS); - - ShowEolMessage(stacks, runtimeSettings, majorDotnetVersion.Value); - // This is for future proofing with stacks API for future dotnet versions. - if (runtimeSettings != null && - (runtimeSettings.IsDeprecated == null || runtimeSettings.IsDeprecated == false) && - (runtimeSettings.IsDeprecatedForRuntime == null || runtimeSettings.IsDeprecatedForRuntime == false)) + if (!Services.RuntimeEolChecker.IsDotnetVersionDeprecated(stacks, majorDotnetVersion.Value)) { _requiredNetFrameworkVersion = $"{majorDotnetVersion}.0"; } @@ -210,6 +205,9 @@ public override async Task RunAsync() // We do not change the default targetFramework if no .csproj file is found } + // Check for EOL warnings for all runtimes + Services.RuntimeEolChecker.CheckAndWarnIfApproachingEol(stacks, workerRuntime, functionApp); + // Check for any additional conditions or app settings that need to change // before starting any of the publish activity. var additionalAppSettings = await ValidateFunctionAppPublish(functionApp, workerRuntime, functionAppRoot); @@ -1466,35 +1464,6 @@ private string GetLogPrefix() return $"[{DateTime.UtcNow.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffZ", CultureInfo.InvariantCulture)}] ".ToString(); } - private void ShowEolMessage(FunctionsStacks stacks, WindowsRuntimeSettings currentRuntimeSettings, int? majorDotnetVersion) - { - try - { - if (currentRuntimeSettings.IsDeprecated == true || currentRuntimeSettings.IsDeprecatedForRuntime == true) - { - var nextDotnetVersion = stacks.GetNextDotnetVersion(majorDotnetVersion.Value); - if (nextDotnetVersion != null) - { - var warningMessage = EolMessages.GetAfterEolUpdateMessageDotNet(majorDotnetVersion.ToString(), nextDotnetVersion.ToString(), currentRuntimeSettings.EndOfLifeDate.Value); - ColoredConsole.WriteLine(WarningColor(warningMessage)); - } - } - else if (StacksApiHelper.IsInNextSixMonths(currentRuntimeSettings.EndOfLifeDate)) - { - var nextDotnetVersion = stacks.GetNextDotnetVersion(majorDotnetVersion.Value); - if (nextDotnetVersion != null) - { - var warningMessage = EolMessages.GetEarlyEolUpdateMessageDotNet(majorDotnetVersion.ToString(), nextDotnetVersion.ToString(), currentRuntimeSettings.EndOfLifeDate.Value); - ColoredConsole.WriteLine(WarningColor(warningMessage)); - } - } - } - catch (Exception) - { - // ignore. Failure to show the EOL message should not fail the deployment. - } - } - // For testing internal class AzureHelperService { diff --git a/src/Cli/func/Actions/LocalActions/InitAction/InitAction.cs b/src/Cli/func/Actions/LocalActions/InitAction/InitAction.cs index 8d74a2e1c..c62719143 100644 --- a/src/Cli/func/Actions/LocalActions/InitAction/InitAction.cs +++ b/src/Cli/func/Actions/LocalActions/InitAction/InitAction.cs @@ -643,14 +643,18 @@ private async Task ShowEolMessage() return; } - if (currentRuntimeSettings.IsDeprecated == true || currentRuntimeSettings.IsDeprecatedForRuntime == true) + // Check if EOL date has already passed + var isAlreadyEol = currentRuntimeSettings.EndOfLifeDate.HasValue && + currentRuntimeSettings.EndOfLifeDate.Value < DateTime.UtcNow; + + if (isAlreadyEol || currentRuntimeSettings.IsDeprecated == true || currentRuntimeSettings.IsDeprecatedForRuntime == true) { - var warningMessage = EolMessages.GetAfterEolCreateMessageDotNet(majorDotnetVersion.ToString(), currentRuntimeSettings.EndOfLifeDate.Value); + var warningMessage = EolMessages.GetAfterEolCreateMessage(".NET", majorDotnetVersion.ToString(), currentRuntimeSettings.EndOfLifeDate.Value); ColoredConsole.WriteLine(WarningColor(warningMessage)); } else if (StacksApiHelper.IsInNextSixMonths(currentRuntimeSettings.EndOfLifeDate)) { - var warningMessage = EolMessages.GetEarlyEolCreateMessageForDotNet(majorDotnetVersion.ToString(), currentRuntimeSettings.EndOfLifeDate.Value); + var warningMessage = EolMessages.GetEarlyEolCreateMessage(".NET", majorDotnetVersion.ToString(), currentRuntimeSettings.EndOfLifeDate.Value); ColoredConsole.WriteLine(WarningColor(warningMessage)); } } diff --git a/src/Cli/func/Directory.Version.props b/src/Cli/func/Directory.Version.props index 00187c706..e0a9b41d6 100644 --- a/src/Cli/func/Directory.Version.props +++ b/src/Cli/func/Directory.Version.props @@ -1,7 +1,7 @@ - 4.6.0 + 4.7.0 true diff --git a/src/Cli/func/Helpers/EolMessages.cs b/src/Cli/func/Helpers/EolMessages.cs index 2ea3b1644..1a4137370 100644 --- a/src/Cli/func/Helpers/EolMessages.cs +++ b/src/Cli/func/Helpers/EolMessages.cs @@ -7,29 +7,57 @@ namespace Azure.Functions.Cli.Helpers { internal class EolMessages { - public static string GetEarlyEolCreateMessageForDotNet(string stackVersion, DateTime eol, string link = "") + /// + /// Gets a message for when a runtime version will reach EOL in the future (create/init scenario). + /// + public static string GetEarlyEolCreateMessage(string runtimeName, string version, DateTime eol, string link = "") { - return $".NET {stackVersion} will reach EOL on {FormatDate(eol)} and will no longer be supported. {link}"; + return $"{runtimeName} {version} will reach end-of-life on {FormatDate(eol)} and will no longer be supported. {link}".Trim(); } - public static string GetAfterEolCreateMessageDotNet(string stackVersion, DateTime eol, string link = "") + /// + /// Gets a message for when a runtime version has already reached EOL (create/init scenario). + /// + public static string GetAfterEolCreateMessage(string runtimeName, string version, DateTime eol, string link = "") { - return $".NET {stackVersion} has reached EOL on {FormatDate(eol)} and is no longer supported. {link}"; + return $"{runtimeName} {version} has reached end-of-life on {FormatDate(eol)} and is no longer supported. {link}".Trim(); } - public static string GetEarlyEolUpdateMessageDotNet(string currentStackVersion, string nextStackVersion, DateTime eol, string link = "") + /// + /// Gets an upgrade message for when a runtime version will reach EOL in the future (publish/update scenario). + /// + public static string GetEarlyEolUpgradeMessage(string runtimeName, string currentVersion, string nextVersion, DateTime eol, string link = "") { - return $"Upgrade your app to .NET {nextStackVersion} as .NET {currentStackVersion} will reach EOL on {FormatDate(eol)} and will no longer be supported. {link}"; + return $"Upgrade to {runtimeName} {nextVersion} as {runtimeName} {currentVersion} will reach end-of-life on {FormatDate(eol)} and will no longer be supported. Learn more: {link}".Trim(); } - public static string GetAfterEolUpdateMessageDotNet(string currentStackVersion, string nextStackVersion, DateTime eol, string link = "") + /// + /// Gets an upgrade message for when a runtime version has already reached EOL (publish/update scenario). + /// + public static string GetAfterEolUpgradeMessage(string runtimeName, string currentVersion, string nextVersion, DateTime eol, string link = "") { - return $"Upgrade your app to .NET {nextStackVersion} as .NET {currentStackVersion} has reached EOL on {FormatDate(eol)} and is no longer supported. {link}"; + return $"Upgrade to {runtimeName} {nextVersion} as {runtimeName} {currentVersion} has reached end-of-life on {FormatDate(eol)} and is no longer be supported. Learn more: {link}".Trim(); + } + + /// + /// Gets a generic message without upgrade recommendation for when a runtime version will reach EOL. + /// + public static string GetEarlyEolMessage(string runtimeName, string version, DateTime eol, string link = "") + { + return $"{runtimeName} {version} will reach end-of-life on {FormatDate(eol)} and will no longer be supported. Learn more: {link}".Trim(); + } + + /// + /// Gets a generic message without upgrade recommendation for when a runtime version has reached EOL. + /// + public static string GetAfterEolMessage(string runtimeName, string version, DateTime eol, string link = "") + { + return $"{runtimeName} {version} has reached end-of-life on {FormatDate(eol)} and is no longer supported. Learn more: {link}".Trim(); } private static string FormatDate(DateTime dateTime) { - return dateTime.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture); + return dateTime.ToString("MMMM dd yyyy", CultureInfo.CurrentCulture); } } } diff --git a/src/Cli/func/Services/RuntimeEolChecker.cs b/src/Cli/func/Services/RuntimeEolChecker.cs new file mode 100644 index 000000000..5d51590d5 --- /dev/null +++ b/src/Cli/func/Services/RuntimeEolChecker.cs @@ -0,0 +1,428 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the MIT License. See LICENSE in the project root for license information. + +using Azure.Functions.Cli.Arm.Models; +using Azure.Functions.Cli.Common; +using Azure.Functions.Cli.Helpers; +using Azure.Functions.Cli.StacksApi; +using Colors.Net; +using static Azure.Functions.Cli.Common.OutputTheme; + +namespace Azure.Functions.Cli.Services +{ + internal class RuntimeEolChecker + { + private const string LearnMoreUrl = "https://aka.ms/FunctionsStackUpgrade"; + private const int EolWarningMonths = 6; + + public static async Task CheckAndWarnIfApproachingEol( + WorkerRuntime runtime, + Site functionApp, + string projectRoot, + string accessToken, + string managementUrl) + { + var stacks = await AzureHelper.GetFunctionsStacks(accessToken, managementUrl); + CheckAndWarnIfApproachingEol(stacks, runtime, functionApp); + } + + public static void CheckAndWarnIfApproachingEol( + FunctionsStacks stacks, + WorkerRuntime runtime, + Site functionApp) + { + try + { + if (runtime == WorkerRuntime.None) + { + return; + } + + string version = null; + int? dotnetMajorVersion = null; + + // Get version from Function App configuration (not local project) + if (runtime == WorkerRuntime.DotnetIsolated || runtime == WorkerRuntime.Dotnet) + { + // For Linux .NET apps, version is in LinuxFxVersion + if (functionApp.IsLinux && !string.IsNullOrEmpty(functionApp.LinuxFxVersion)) + { + version = ExtractVersionFromLinuxFxVersion(functionApp.LinuxFxVersion, runtime); + } + + // For Windows .NET apps, version is in NetFrameworkVersion + else + { + version = functionApp.NetFrameworkVersion; + if (string.IsNullOrEmpty(version) && functionApp.AzureAppSettings?.TryGetValue("netFrameworkVersion", out string netVersion) == true) + { + version = netVersion; + } + } + + if (!string.IsNullOrEmpty(version)) + { + dotnetMajorVersion = GetMajorDotnetVersion(version); + if (dotnetMajorVersion.HasValue) + { + version = dotnetMajorVersion.Value.ToString(); + } + } + } + else + { + version = GetRuntimeVersionFromFunctionApp(runtime, functionApp); + } + + if (string.IsNullOrEmpty(version) && !dotnetMajorVersion.HasValue) + { + return; + } + + var eolInfo = runtime == WorkerRuntime.DotnetIsolated || runtime == WorkerRuntime.Dotnet + ? GetDotNetEolInformation(stacks, dotnetMajorVersion.Value) + : GetEolInformation(stacks, runtime, version); + + if (eolInfo != null && ShouldShowWarning(eolInfo.EolDate)) + { + DisplayEolWarning(eolInfo); + } + } + catch + { + // Silently fail - don't block deployment for EOL warnings + } + } + + /// + /// Checks if the given .NET major version is deprecated for runtime. + /// + public static bool IsDotnetVersionDeprecated(FunctionsStacks stacks, int majorVersion) + { + var runtimeSettings = stacks.GetRuntimeSettings(majorVersion, out bool isLTS); + return runtimeSettings != null && + (runtimeSettings.IsDeprecated == true || runtimeSettings.IsDeprecatedForRuntime == true); + } + + private static string GetRuntimeVersionFromFunctionApp(WorkerRuntime runtime, Site functionApp) + { + // For Flex consumption plans, check FunctionAppConfig first + if (functionApp.IsFlex && functionApp.FunctionAppConfig?.Runtime != null) + { + return functionApp.FunctionAppConfig.Runtime.Version; + } + + // For Linux: get from LinuxFxVersion (e.g., "PYTHON|3.11", "NODE|20") + if (functionApp.IsLinux && !string.IsNullOrEmpty(functionApp.LinuxFxVersion)) + { + return ExtractVersionFromLinuxFxVersion(functionApp.LinuxFxVersion, runtime); + } + + // For Windows: Different sources per runtime + // Node.js version is in app setting WEBSITE_NODE_DEFAULT_VERSION + if (runtime == WorkerRuntime.Node) + { + if (functionApp.AzureAppSettings?.TryGetValue("WEBSITE_NODE_DEFAULT_VERSION", out string nodeVersion) == true) + { + // Remove ~ prefix if present (e.g., "~20" -> "20") + return nodeVersion?.TrimStart('~'); + } + } + + // Java, PowerShell, Python on Windows would typically be in site config + // but Site model doesn't expose these properties for Windows, + // so we return null (these runtimes typically run on Linux anyway) + return null; + } + + private static string ExtractVersionFromLinuxFxVersion(string linuxFxVersion, WorkerRuntime runtime) + { + // LinuxFxVersion format: "RUNTIME|VERSION" (e.g., "PYTHON|3.11", "NODE|20", "DOTNET-ISOLATED|8.0", "JAVA|17-java17") + if (string.IsNullOrEmpty(linuxFxVersion)) + { + return null; + } + + var parts = linuxFxVersion.Split('|'); + if (parts.Length != 2) + { + return null; + } + + var prefix = parts[0].ToUpperInvariant(); + var version = parts[1]; + + // Map worker runtime to expected Linux FX prefix + var expectedPrefix = runtime switch + { + WorkerRuntime.Node => "NODE", + WorkerRuntime.Python => "PYTHON", + WorkerRuntime.Java => "JAVA", + WorkerRuntime.Powershell => "POWERSHELL", + WorkerRuntime.Dotnet => "DOTNET", + WorkerRuntime.DotnetIsolated => "DOTNET-ISOLATED", + _ => null + }; + + if (expectedPrefix == null || !prefix.Equals(expectedPrefix, StringComparison.OrdinalIgnoreCase)) + { + return null; + } + + // For Java, version might be like "17-java17", extract just the number + if (runtime == WorkerRuntime.Java && version.Contains('-')) + { + version = version.Split('-')[0]; + } + + return version; + } + + private static int? GetMajorDotnetVersion(string targetFramework) + { + if (string.IsNullOrEmpty(targetFramework)) + { + return null; + } + + var versionStr = targetFramework.ToLower().Replace("net", string.Empty).Replace("v", string.Empty); + if (double.TryParse(versionStr, out double version)) + { + return (int)version; + } + + return null; + } + + private static EolInformation GetDotNetEolInformation(FunctionsStacks stacks, int majorVersion) + { + var dotnetIsolatedStackKey = $"{Constants.Dotnet}{majorVersion}isolated"; + var minorVersion = stacks?.Languages?.FirstOrDefault(x => x.Name.Equals(Constants.Dotnet, StringComparison.OrdinalIgnoreCase)) + ?.Properties.MajorVersions?.FirstOrDefault(x => x.Value == dotnetIsolatedStackKey) + ?.MinorVersions?.LastOrDefault(); + + if (minorVersion == null) + { + return null; + } + + var runtimeSettings = minorVersion.StackSettings?.WindowsRuntimeSettings; + if (runtimeSettings?.EndOfLifeDate == null) + { + return null; + } + + // Check if deprecated + if (runtimeSettings.IsDeprecated != true && runtimeSettings.IsDeprecatedForRuntime != true) + { + var warningThreshold = DateTime.UtcNow.AddMonths(EolWarningMonths); + if (runtimeSettings.EndOfLifeDate > warningThreshold) + { + return null; // Not approaching EOL yet + } + } + + // Find next .NET version + var nextVersion = FindNextDotNetVersion(stacks, majorVersion); + + return new EolInformation + { + RuntimeName = ".NET", + CurrentVersion = majorVersion.ToString(), + RecommendedVersion = nextVersion?.ToString(), + EolDate = runtimeSettings.EndOfLifeDate.Value + }; + } + + private static int? FindNextDotNetVersion(FunctionsStacks stacks, int currentMajorVersion) + { + WindowsRuntimeSettings runtimeSettings; + bool isLTS; + int nextVersion = currentMajorVersion; + + do + { + nextVersion++; + var dotnetIsolatedStackKey = $"{Constants.Dotnet}{nextVersion}isolated"; + var minorVersion = stacks?.Languages?.FirstOrDefault(x => x.Name.Equals(Constants.Dotnet, StringComparison.OrdinalIgnoreCase)) + ?.Properties.MajorVersions?.FirstOrDefault(x => x.Value == dotnetIsolatedStackKey) + ?.MinorVersions?.LastOrDefault(); + + isLTS = minorVersion?.Value?.Contains("LTS") == true; + runtimeSettings = minorVersion?.StackSettings?.WindowsRuntimeSettings; + } + while (runtimeSettings != null && !isLTS && runtimeSettings.IsDeprecated != true && runtimeSettings.IsDeprecatedForRuntime != true); + + return runtimeSettings != null ? nextVersion : (int?)null; + } + + private static EolInformation GetEolInformation(FunctionsStacks stacks, WorkerRuntime runtime, string version) + { + var runtimeName = runtime.ToString().ToLower(); + var language = stacks?.Languages?.FirstOrDefault(l => + l.Name.Equals(runtimeName, StringComparison.OrdinalIgnoreCase)); + + if (language == null) + { + return null; + } + + // Find the matching version in the stacks + MinorVersion matchingVersion = null; + MajorVersion majorVersion = null; + + foreach (var major in language.Properties.MajorVersions ?? Enumerable.Empty()) + { + foreach (var minor in major.MinorVersions ?? Enumerable.Empty()) + { + if (VersionMatches(minor.Value, version)) + { + matchingVersion = minor; + majorVersion = major; + break; + } + } + + if (matchingVersion != null) + { + break; + } + } + + if (matchingVersion == null) + { + return null; + } + + // Get EOL date based on runtime type + DateTime? eolDate = runtime == WorkerRuntime.Python + ? matchingVersion.StackSettings?.LinuxRuntimeSettings?.EndOfLifeDate + : matchingVersion.StackSettings?.WindowsRuntimeSettings?.EndOfLifeDate; + + if (!eolDate.HasValue) + { + return null; + } + + // Find the next recommended version + var nextVersion = FindNextVersion(language, version, runtime); + + return new EolInformation + { + RuntimeName = language.Properties.DisplayText ?? runtime.ToString(), + CurrentVersion = version, + RecommendedVersion = nextVersion, + EolDate = eolDate.Value + }; + } + + private static bool VersionMatches(string stackVersion, string userVersion) + { + if (string.IsNullOrEmpty(stackVersion) || string.IsNullOrEmpty(userVersion)) + { + return false; + } + + // Remove common prefixes and suffixes for comparison + stackVersion = stackVersion.Replace(" LTS", string.Empty).Trim(); + userVersion = userVersion.Replace(" LTS", string.Empty).Trim(); + + return userVersion.StartsWith(stackVersion, StringComparison.OrdinalIgnoreCase); + } + + private static string FindNextVersion(Language language, string currentVersion, WorkerRuntime runtime) + { + var allVersions = new List(); + + foreach (var major in language.Properties.MajorVersions ?? Enumerable.Empty()) + { + if (runtime == WorkerRuntime.Node) + { + // For Node, use major version numbers + allVersions.Add(major.Value); + } + else + { + // For others, use minor versions + foreach (var minor in major.MinorVersions ?? Enumerable.Empty()) + { + allVersions.Add(minor.Value.Replace(" LTS", string.Empty).Trim()); + } + } + } + + // Sort versions and find the next one + if (runtime == WorkerRuntime.Node) + { + var numericVersions = allVersions + .Select(v => int.TryParse(v, out int n) ? n : (int?)null) + .Where(v => v.HasValue) + .OrderByDescending(v => v.Value) + .ToList(); + + if (int.TryParse(currentVersion, out int current)) + { + var next = numericVersions.FirstOrDefault(v => v > current); + return next?.ToString() ?? numericVersions.FirstOrDefault()?.ToString(); + } + } + else + { + var semanticVersions = allVersions + .Where(v => Version.TryParse(v, out _)) + .Select(v => Version.Parse(v)) + .OrderByDescending(v => v) + .ToList(); + + if (Version.TryParse(currentVersion, out Version current)) + { + var next = semanticVersions.FirstOrDefault(v => v > current); + return next?.ToString() ?? semanticVersions.FirstOrDefault()?.ToString(); + } + } + + return allVersions.OrderByDescending(v => v).FirstOrDefault(); + } + + private static bool ShouldShowWarning(DateTime eolDate) + { + var now = DateTime.UtcNow; + var warningThreshold = now.AddMonths(EolWarningMonths); + return eolDate <= warningThreshold; + } + + private static void DisplayEolWarning(EolInformation info) + { + var isExpired = info.EolDate < DateTime.UtcNow; + + string message; + if (!string.IsNullOrEmpty(info.RecommendedVersion)) + { + // Has upgrade recommendation + message = isExpired + ? EolMessages.GetAfterEolUpgradeMessage(info.RuntimeName, info.CurrentVersion, info.RecommendedVersion, info.EolDate, LearnMoreUrl) + : EolMessages.GetEarlyEolUpgradeMessage(info.RuntimeName, info.CurrentVersion, info.RecommendedVersion, info.EolDate, LearnMoreUrl); + } + else + { + // No upgrade recommendation available + message = isExpired + ? EolMessages.GetAfterEolMessage(info.RuntimeName, info.CurrentVersion, info.EolDate, LearnMoreUrl) + : EolMessages.GetEarlyEolMessage(info.RuntimeName, info.CurrentVersion, info.EolDate, LearnMoreUrl); + } + + ColoredConsole.WriteLine(WarningColor(message)); + } + + private class EolInformation + { + public string RuntimeName { get; set; } + + public string CurrentVersion { get; set; } + + public string RecommendedVersion { get; set; } + + public DateTime EolDate { get; set; } + } + } +} diff --git a/src/Cli/func/StaticResources/stacks.json b/src/Cli/func/StaticResources/stacks.json index 83633eb90..941059a62 100644 --- a/src/Cli/func/StaticResources/stacks.json +++ b/src/Cli/func/StaticResources/stacks.json @@ -1,1789 +1,3150 @@ { - "value": [ - { - "id": null, - "name": "dotnet", - "type": "Microsoft.Web/functionAppStacks?stackOsType=All", - "properties": { - "displayText": ".NET", - "value": "dotnet", - "preferredOs": "windows", - "majorVersions": [ - { - "displayText": ".NET 8 Isolated", - "value": "dotnet8isolated", - "minorVersions": [ - { - "displayText": ".NET 8 Isolated", - "value": "8 (LTS), isolated worker model", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "v8.0", - "isHidden": false, - "isDefault": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "8.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "netFrameworkVersion": "v8.0" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "DOTNET-ISOLATED|8.0", - "isHidden": false, - "isDefault": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "8.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "DOTNET-ISOLATED|8.0" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": ".NET 7 Isolated", - "value": "dotnet7isolated", - "minorVersions": [ - { - "displayText": ".NET 7 Isolated", - "value": "7 (STS), isolated worker model", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "v7.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "7.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "netFrameworkVersion": "v7.0" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue May 14 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "DOTNET-ISOLATED|7.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "7.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "DOTNET-ISOLATED|7.0" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue May 14 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": ".NET 6 Isolated", - "value": "dotnet6isolated", - "minorVersions": [ - { - "displayText": ".NET 6 (LTS) Isolated", - "value": "6 (LTS), isolated worker model", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "v6.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "6.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 12 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "DOTNET-ISOLATED|6.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "6.0.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", - "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "DOTNET-ISOLATED|6.0" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 12 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": ".NET Framework 4.8", - "value": "dotnetframework48", - "minorVersions": [ - { - "displayText": ".NET Framework 4.8", - "value": ".NET Framework 4.8, isolated worker model", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "v4.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "4.8.x" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v4.0" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ] - } - } - } - ] - }, - { - "displayText": ".NET 6 In-process", - "value": "dotnet6", - "minorVersions": [ - { - "displayText": ".NET 6 (LTS) In-process", - "value": "6 (LTS), in-process model", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "v6.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "6.0.x" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "dotnet" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 12 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "DOTNET|6.0", - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "6.0.x" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "dotnet" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "linuxFxVersion": "DOTNET|6.0" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Nov 12 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": ".NET 5 (non-LTS)", - "value": "dotnet5", - "minorVersions": [ - { - "displayText": ".NET 5 (non-LTS)", - "value": "5 (non-LTS)", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "v5.0", - "isHidden": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "5.0.x" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" }, - "siteConfigPropertiesDictionary": { "use32BitWorkerProcess": true }, - "supportedFunctionsExtensionVersions": [ "~3" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~3", - "isDeprecated": true, - "isDefault": true - } - ], - "endOfLifeDate": "Sun May 08 2022 00:00:00 GMT+0000 (Coordinated Universal Time)", - "isDeprecated": true - }, - "linuxRuntimeSettings": { - "runtimeVersion": "DOTNET-ISOLATED|5.0", - "isHidden": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "5.0.x" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "linuxFxVersion": "DOTNET-ISOLATED|5.0" - }, - "supportedFunctionsExtensionVersions": [ "~3" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~3", - "isDeprecated": true, - "isDefault": true - } - ], - "endOfLifeDate": "Sun May 08 2022 00:00:00 GMT+0000 (Coordinated Universal Time)", - "isDeprecated": true - } - } - } - ] - }, - { - "displayText": ".NET Core 3", - "value": "dotnetcore3", - "minorVersions": [ - { - "displayText": ".NET Core 3.1", - "value": "3.1", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "3.1", - "appInsightsSettings": { "isSupported": true }, - "remoteDebuggingSupported": false, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "3.1.301" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "dotnet" }, - "siteConfigPropertiesDictionary": { "use32BitWorkerProcess": true }, - "supportedFunctionsExtensionVersions": [ "~3" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~3", - "isDeprecated": true, - "isDefault": true - } - ], - "endOfLifeDate": "Sat Dec 03 2022 00:00:00 GMT+0000 (Coordinated Universal Time)", - "isDeprecated": true - }, - "linuxRuntimeSettings": { - "runtimeVersion": "dotnet|3.1", - "appInsightsSettings": { "isSupported": true }, - "remoteDebuggingSupported": false, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "3.1.301" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "dotnet" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "dotnet|3.1" - }, - "supportedFunctionsExtensionVersions": [ "~3" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~3", - "isDeprecated": true, - "isDefault": true - } - ], - "endOfLifeDate": "Sat Dec 03 2022 00:00:00 GMT+0000 (Coordinated Universal Time)", - "isDeprecated": true - } - } - } - ] - }, - { - "displayText": ".NET Core 2", - "value": "dotnetcore2", - "minorVersions": [ - { - "displayText": ".NET Core 2.2", - "value": "2.2", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "2.2", - "appInsightsSettings": { "isSupported": true }, - "remoteDebuggingSupported": false, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "2.2.207" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "dotnet" }, - "siteConfigPropertiesDictionary": { "use32BitWorkerProcess": true }, - "supportedFunctionsExtensionVersions": [ "~2" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~2", - "isDeprecated": true, - "isDefault": true - } - ] - }, - "linuxRuntimeSettings": { - "runtimeVersion": "dotnet|2.2", - "appInsightsSettings": { "isSupported": true }, - "remoteDebuggingSupported": false, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "2.2.207" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "dotnet" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "dotnet|2.2" - }, - "supportedFunctionsExtensionVersions": [ "~2" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~2", - "isDeprecated": true, - "isDefault": true - } - ] - } - } - } - ] - }, - { - "displayText": ".NET Framework 4", - "value": "dotnetframework4", - "minorVersions": [ - { - "displayText": ".NET Framework 4.7", - "value": "4.7", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "4.7", - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { "isSupported": false }, - "appSettingsDictionary": {}, - "siteConfigPropertiesDictionary": { "use32BitWorkerProcess": true }, - "supportedFunctionsExtensionVersions": [ "~1" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~1", - "isDeprecated": true, - "isDefault": true - } - ] - } - } - } - ] - } - ] - } - }, - { - "id": null, - "name": "node", - "type": "Microsoft.Web/functionAppStacks?stackOsType=All", - "properties": { - "displayText": "Node.js", - "value": "node", - "preferredOs": "windows", - "majorVersions": [ - { - "displayText": "Node.js 20", - "value": "20", - "minorVersions": [ - { - "displayText": "Node.js 20", - "value": "20", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~20", - "isPreview": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "20.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node", - "WEBSITE_NODE_DEFAULT_VERSION": "~20" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Sat May 30 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Node|20", - "isPreview": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "20.x" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "node" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Node|20" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Sat May 30 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Node.js 18", - "value": "18", - "minorVersions": [ - { - "displayText": "Node.js 18 LTS", - "value": "18 LTS", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~18", - "isDefault": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "18.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node", - "WEBSITE_NODE_DEFAULT_VERSION": "~18" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Wed Apr 30 2025 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Node|18", - "isDefault": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "18.x" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "node" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Node|18" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Wed Apr 30 2025 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Node.js 16", - "value": "16", - "minorVersions": [ - { - "displayText": "Node.js 16 LTS", - "value": "16 LTS", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~16", - "isPreview": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "16.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node", - "WEBSITE_NODE_DEFAULT_VERSION": "~16" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Sun Jun 30 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Node|16", - "isPreview": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "16.x" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "node" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Node|16" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Sun Jun 30 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Node.js 14", - "value": "14", - "minorVersions": [ - { - "displayText": "Node.js 14 LTS", - "value": "14 LTS", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~14", - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "14.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node", - "WEBSITE_NODE_DEFAULT_VERSION": "~14" - }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ "~4", "~3" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Sun Apr 30 2023 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Node|14", - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "14.x" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "node" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Node|14" - }, - "supportedFunctionsExtensionVersions": [ "~4", "~3" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Sun Apr 30 2023 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Node.js 12", - "value": "12", - "minorVersions": [ - { - "displayText": "Node.js 12 LTS", - "value": "12 LTS", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~12", - "isDeprecated": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "12.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node", - "WEBSITE_NODE_DEFAULT_VERSION": "~12" - }, - "siteConfigPropertiesDictionary": { "use32BitWorkerProcess": true }, - "supportedFunctionsExtensionVersions": [ "~3" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~3", - "isDeprecated": true, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Dec 13 2022 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Node|12", - "isDeprecated": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "12.x" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "node" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Node|12" - }, - "supportedFunctionsExtensionVersions": [ "~3" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~3", - "isDeprecated": true, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Dec 13 2022 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Node.js 10", - "value": "10", - "minorVersions": [ - { - "displayText": "Node.js 10 LTS", - "value": "10 LTS", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~10", - "isDeprecated": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "10.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node", - "WEBSITE_NODE_DEFAULT_VERSION": "~10" - }, - "siteConfigPropertiesDictionary": { "use32BitWorkerProcess": true }, - "supportedFunctionsExtensionVersions": [ "~2", "~3" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~2", - "isDeprecated": true, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Fri Apr 30 2021 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Node|10", - "isDeprecated": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "10.x" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "node" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Node|10" - }, - "supportedFunctionsExtensionVersions": [ "~2", "~3" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~2", - "isDeprecated": true, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Fri Apr 30 2021 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Node.js 8", - "value": "8", - "minorVersions": [ - { - "displayText": "Node.js 8 LTS", - "value": "8 LTS", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~8", - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "8.x" - }, - "appSettingsDictionary": { - "FUNCTIONS_WORKER_RUNTIME": "node", - "WEBSITE_NODE_DEFAULT_VERSION": "~8" - }, - "siteConfigPropertiesDictionary": { "use32BitWorkerProcess": true }, - "supportedFunctionsExtensionVersions": [ "~2" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~2", - "isDeprecated": true, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Dec 31 2019 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Node.js 6", - "value": "6", - "minorVersions": [ - { - "displayText": "Node.js 6 LTS", - "value": "6 LTS", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~6", - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { "isSupported": false }, - "appSettingsDictionary": { "WEBSITE_NODE_DEFAULT_VERSION": "~6" }, - "siteConfigPropertiesDictionary": { "use32BitWorkerProcess": true }, - "supportedFunctionsExtensionVersions": [ "~1" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~1", - "isDeprecated": true, - "isDefault": true - } - ], - "endOfLifeDate": "Tue Apr 30 2019 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - } - ] - } - }, - { - "id": null, - "name": "python", - "type": "Microsoft.Web/functionAppStacks?stackOsType=All", - "properties": { - "displayText": "Python", - "value": "python", - "preferredOs": "linux", - "majorVersions": [ - { - "displayText": "Python 3", - "value": "3", - "minorVersions": [ - { - "displayText": "Python 3.11", - "value": "3.11", - "stackSettings": { - "linuxRuntimeSettings": { - "runtimeVersion": "Python|3.11", - "remoteDebuggingSupported": false, - "isPreview": false, - "isDefault": true, - "isHidden": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "3.11" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "python" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Python|3.11" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Sun Oct 31 2027 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - }, - { - "displayText": "Python 3.10", - "value": "3.10", - "stackSettings": { - "linuxRuntimeSettings": { - "runtimeVersion": "Python|3.10", - "remoteDebuggingSupported": false, - "isPreview": false, - "isDefault": true, - "isHidden": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "3.10" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "python" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Python|3.10" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Sat Oct 31 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - }, - { - "displayText": "Python 3.9", - "value": "3.9", - "stackSettings": { - "linuxRuntimeSettings": { - "runtimeVersion": "Python|3.9", - "remoteDebuggingSupported": false, - "isPreview": false, - "isDefault": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "3.9" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "python" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Python|3.9" - }, - "supportedFunctionsExtensionVersions": [ "~4", "~3" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Fri Oct 31 2025 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - }, - { - "displayText": "Python 3.8", - "value": "3.8", - "stackSettings": { - "linuxRuntimeSettings": { - "runtimeVersion": "Python|3.8", - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "3.8" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "python" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Python|3.8" - }, - "supportedFunctionsExtensionVersions": [ "~4", "~3" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Thu Oct 31 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - }, - { - "displayText": "Python 3.7", - "value": "3.7", - "stackSettings": { - "linuxRuntimeSettings": { - "runtimeVersion": "Python|3.7", - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "3.7" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "python" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Python|3.7" - }, - "supportedFunctionsExtensionVersions": [ "~4", "~3", "~2" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - }, - { - "version": "~2", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Fri Jun 30 2023 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - }, - { - "displayText": "Python 3.6", - "value": "3.6", - "stackSettings": { - "linuxRuntimeSettings": { - "runtimeVersion": "Python|3.6", - "isDeprecated": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "3.6" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "python" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Python|3.6" - }, - "supportedFunctionsExtensionVersions": [ "~2", "~3" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~2", - "isDeprecated": true, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Fri Sep 30 2022 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - } - ] - } - }, - { - "id": null, - "name": "java", - "type": "Microsoft.Web/functionAppStacks?stackOsType=All", - "properties": { - "displayText": "Java", - "value": "java", - "preferredOs": "windows", - "majorVersions": [ - { - "displayText": "Java 21", - "value": "21", - "minorVersions": [ - { - "displayText": "Java 21", - "value": "21.0", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "21", - "isPreview": true, - "isHidden": true, - "isAutoUpdate": true, - "isDefault": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "21" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "java" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "javaVersion": "21", - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Mon Sep 01 2031 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Java|21", - "isPreview": true, - "isHidden": false, - "isAutoUpdate": true, - "isDefault": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "21" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "java" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Java|21" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Mon Sep 01 2031 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Java 17", - "value": "17", - "minorVersions": [ - { - "displayText": "Java 17", - "value": "17.0", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "17", - "isPreview": false, - "isHidden": false, - "isAutoUpdate": true, - "isDefault": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "17" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "java" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "javaVersion": "17", - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Mon Sep 01 2031 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Java|17", - "isPreview": false, - "isHidden": false, - "isAutoUpdate": true, - "isDefault": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "17" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "java" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Java|17" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Mon Sep 01 2031 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Java 11", - "value": "11", - "minorVersions": [ - { - "displayText": "Java 11", - "value": "11.0", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "11", - "isAutoUpdate": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "11" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "java" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "javaVersion": "11", - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ "~4", "~3" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Tue Sep 01 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Java|11", - "isAutoUpdate": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "11" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "java" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Java|11" - }, - "supportedFunctionsExtensionVersions": [ "~4", "~3" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Tue Sep 01 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "Java 8", - "value": "8", - "minorVersions": [ - { - "displayText": "Java 8", - "value": "8.0", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "1.8", - "isAutoUpdate": true, - "isDefault": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "8" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "java" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "javaVersion": "1.8", - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ "~4", "~3", "~2" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - }, - { - "version": "~2", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Sat Mar 01 2025 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "Java|8", - "isAutoUpdate": true, - "isDefault": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { - "isSupported": true, - "supportedVersion": "8" - }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "java" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "Java|8" - }, - "supportedFunctionsExtensionVersions": [ "~4", "~3" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Sat Mar 01 2025 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - } - ] - } - }, - { - "id": null, - "name": "powershell", - "type": "Microsoft.Web/functionAppStacks?stackOsType=All", - "properties": { - "displayText": "PowerShell Core", - "value": "powershell", - "preferredOs": "windows", - "majorVersions": [ - { - "displayText": "PowerShell 7", - "value": "7", - "minorVersions": [ - { - "displayText": "PowerShell 7.4", - "value": "7.4", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "7.4", - "isDefault": false, - "isPreview": true, - "isHidden": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { "isSupported": true }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "powershell" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "powerShellVersion": "7.4", - "netFrameworkVersion": "v8.0" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ] - }, - "linuxRuntimeSettings": { - "runtimeVersion": "PowerShell|7.4", - "isDefault": false, - "isPreview": true, - "isHidden": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { "isSupported": true }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "powershell" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "PowerShell|7.4" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ] - } - } - }, - { - "displayText": "PowerShell 7.2", - "value": "7.2", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "7.2", - "isDefault": true, - "isPreview": false, - "isHidden": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { "isSupported": true }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "powershell" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "powerShellVersion": "7.2", - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Fri Nov 08 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "PowerShell|7.2", - "isDefault": true, - "isPreview": false, - "isHidden": false, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { "isSupported": true }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "powershell" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "PowerShell|7.2" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Fri Nov 08 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - }, - { - "displayText": "PowerShell 7.0", - "value": "7.0", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~7", - "isDeprecated": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { "isSupported": true }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "powershell" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "powerShellVersion": "~7", - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ "~4", "~3" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Sat Dec 03 2022 00:00:00 GMT+0000 (Coordinated Universal Time)" - }, - "linuxRuntimeSettings": { - "runtimeVersion": "PowerShell|7", - "isAutoUpdate": true, - "isPreview": false, - "isDeprecated": true, - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { "isSupported": true }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "powershell" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "PowerShell|7" - }, - "supportedFunctionsExtensionVersions": [ "~4" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - } - ], - "endOfLifeDate": "Sat Dec 03 2022 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - }, - { - "displayText": "PowerShell Core 6", - "value": "6", - "minorVersions": [ - { - "displayText": "PowerShell Core 6.2", - "value": "6.2", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "~6", - "remoteDebuggingSupported": false, - "appInsightsSettings": { "isSupported": true }, - "gitHubActionSettings": { "isSupported": true }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "powershell" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "powerShellVersion": "~6" - }, - "isDeprecated": true, - "supportedFunctionsExtensionVersions": [ "~2", "~3" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~2", - "isDeprecated": true, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - } - ], - "endOfLifeDate": "Fri Sep 30 2022 00:00:00 GMT+0000 (Coordinated Universal Time)" - } - } - } - ] - } - ] - } - }, - { - "id": null, - "name": "custom", - "type": "Microsoft.Web/functionAppStacks?stackOsType=All", - "properties": { - "displayText": "Custom Handler", - "value": "custom", - "preferredOs": "windows", - "majorVersions": [ - { - "displayText": "Custom Handler", - "value": "custom", - "minorVersions": [ - { + "value": [ + { + "id": null, + "name": "dotnet", + "type": "Microsoft.Web/functionAppStacks?stackOsType=All", + "properties": { + "displayText": ".NET", + "value": "dotnet", + "preferredOs": "windows", + "majorVersions": [ + { + "displayText": ".NET 10 Isolated", + "value": "dotnet10isolated", + "minorVersions": [ + { + "displayText": ".NET 10 Isolated", + "value": "10 (LTS), isolated worker model", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "v10.0", + "isPreview": false, + "isDefault": false, + "isHidden": false, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "10.0.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", + "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "netFrameworkVersion": "v10.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": false + } + ], + "endOfLifeDate": "Fri Nov 10 2028 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "DOTNET-ISOLATED|10.0", + "isPreview": false, + "isDefault": false, + "isHidden": false, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "10.0.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", + "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "DOTNET-ISOLATED|10.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": false + } + ], + "endOfLifeDate": "Fri Nov 10 2028 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": [ + { + "skuCode": "FC1", + "instanceMemoryMB": [ + { + "size": 512, + "isDefault": false + }, + { + "size": 2048, + "isDefault": true + }, + { + "size": 4096, + "isDefault": false + } + ], + "maximumInstanceCount": { + "lowestMaximumInstanceCount": 40, + "highestMaximumInstanceCount": 1000, + "defaultValue": 100 + }, + "functionAppConfigProperties": { + "runtime": { + "name": "dotnet-isolated", + "version": "10.0" + } + } + } + ] + } + } + } + ] + }, + { + "displayText": ".NET 9 Isolated", + "value": "dotnet9isolated", + "minorVersions": [ + { + "displayText": ".NET 9 Isolated", + "value": "9 (STS), isolated worker model", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "v9.0", + "isDefault": false, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "9.0.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", + "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "netFrameworkVersion": "v9.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": false + } + ], + "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "DOTNET-ISOLATED|9.0", + "isDefault": false, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "9.0.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", + "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "DOTNET-ISOLATED|9.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": false + } + ], + "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": [ + { + "skuCode": "FC1", + "instanceMemoryMB": [ + { + "size": 512, + "isDefault": false + }, + { + "size": 2048, + "isDefault": true + }, + { + "size": 4096, + "isDefault": false + } + ], + "maximumInstanceCount": { + "lowestMaximumInstanceCount": 40, + "highestMaximumInstanceCount": 1000, + "defaultValue": 100 + }, + "functionAppConfigProperties": { + "runtime": { + "name": "dotnet-isolated", + "version": "9.0" + } + } + } + ] + } + } + } + ] + }, + { + "displayText": ".NET 8 Isolated", + "value": "dotnet8isolated", + "minorVersions": [ + { + "displayText": ".NET 8 Isolated", + "value": "8 (LTS), isolated worker model", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "v8.0", + "isHidden": false, + "isDefault": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "8.0.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", + "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "netFrameworkVersion": "v8.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "DOTNET-ISOLATED|8.0", + "isHidden": false, + "isDefault": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "8.0.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", + "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "DOTNET-ISOLATED|8.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": [ + { + "skuCode": "FC1", + "instanceMemoryMB": [ + { + "size": 512, + "isDefault": false + }, + { + "size": 2048, + "isDefault": true + }, + { + "size": 4096, + "isDefault": false + } + ], + "maximumInstanceCount": { + "lowestMaximumInstanceCount": 40, + "highestMaximumInstanceCount": 1000, + "defaultValue": 100 + }, + "functionAppConfigProperties": { + "runtime": { + "name": "dotnet-isolated", + "version": "8.0" + } + } + } + ] + } + } + } + ] + }, + { + "displayText": ".NET 7 Isolated", + "value": "dotnet7isolated", + "minorVersions": [ + { + "displayText": ".NET 7 Isolated", + "value": "7 (STS), isolated worker model", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "v7.0", + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "7.0.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", + "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "netFrameworkVersion": "v7.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Tue May 14 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "DOTNET-ISOLATED|7.0", + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "7.0.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", + "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "DOTNET-ISOLATED|7.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Tue May 14 2024 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": null + } + } + } + ] + }, + { + "displayText": ".NET 6 Isolated", + "value": "dotnet6isolated", + "minorVersions": [ + { + "displayText": ".NET 6 (LTS) Isolated", + "value": "6 (LTS), isolated worker model", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "v6.0", + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "6.0.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", + "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "netFrameworkVersion": "v6.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Tue Nov 12 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "DOTNET-ISOLATED|6.0", + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "6.0.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", + "WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED": "1" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "DOTNET-ISOLATED|6.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Tue Nov 12 2024 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": null + } + } + } + ] + }, + { + "displayText": ".NET Framework 4.8", + "value": "dotnetframework48", + "minorVersions": [ + { + "displayText": ".NET Framework 4.8", + "value": ".NET Framework 4.8, isolated worker model", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "v4.0", + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "4.8.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true, + "netFrameworkVersion": "v4.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ] + } + } + } + ] + }, + { + "displayText": ".NET 8 In-process", + "value": "dotnet8", + "minorVersions": [ + { + "displayText": ".NET 8 (LTS) In-process", + "value": "8 (LTS), in-process model", + "stackSettings": { + "windowsRuntimeSettings": { + "isHidden": false, + "runtimeVersion": "v8.0", + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "8.0.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet", + "FUNCTIONS_INPROC_NET8_ENABLED": "1" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true, + "netFrameworkVersion": "v8.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": false + } + ], + "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "isHidden": false, + "runtimeVersion": "DOTNET|8.0", + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "8.0.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet", + "FUNCTIONS_INPROC_NET8_ENABLED": "1" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true, + "linuxFxVersion": "DOTNET|8.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": false + } + ], + "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": null + } + } + } + ] + }, + { + "displayText": ".NET 6 In-process", + "value": "dotnet6", + "minorVersions": [ + { + "displayText": ".NET 6 (LTS) In-process", + "value": "6 (LTS), in-process model", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "v6.0", + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "6.0.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true, + "netFrameworkVersion": "v6.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Tue Nov 12 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "DOTNET|6.0", + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "6.0.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true, + "linuxFxVersion": "DOTNET|6.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Tue Nov 12 2024 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": null + } + } + } + ] + }, + { + "displayText": ".NET 5 (non-LTS)", + "value": "dotnet5", + "minorVersions": [ + { + "displayText": ".NET 5 (non-LTS)", + "value": "5 (non-LTS)", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "v5.0", + "isHidden": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "5.0.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true + }, + "supportedFunctionsExtensionVersions": [ + "~3" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~3", + "isDeprecated": true, + "isDefault": true + } + ], + "endOfLifeDate": "Sun May 08 2022 00:00:00 GMT+0000 (Coordinated Universal Time)", + "isDeprecated": true + }, + "linuxRuntimeSettings": { + "runtimeVersion": "DOTNET-ISOLATED|5.0", + "isHidden": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "5.0.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true, + "linuxFxVersion": "DOTNET-ISOLATED|5.0" + }, + "supportedFunctionsExtensionVersions": [ + "~3" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~3", + "isDeprecated": true, + "isDefault": true + } + ], + "endOfLifeDate": "Sun May 08 2022 00:00:00 GMT+0000 (Coordinated Universal Time)", + "isDeprecated": true, + "Sku": null + } + } + } + ] + }, + { + "displayText": ".NET Core 3", + "value": "dotnetcore3", + "minorVersions": [ + { + "displayText": ".NET Core 3.1", + "value": "3.1", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "3.1", + "appInsightsSettings": { + "isSupported": true + }, + "remoteDebuggingSupported": false, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "3.1.301" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true + }, + "supportedFunctionsExtensionVersions": [ + "~3" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~3", + "isDeprecated": true, + "isDefault": true + } + ], + "endOfLifeDate": "Sat Dec 03 2022 00:00:00 GMT+0000 (Coordinated Universal Time)", + "isDeprecated": true + }, + "linuxRuntimeSettings": { + "runtimeVersion": "dotnet|3.1", + "appInsightsSettings": { + "isSupported": true + }, + "remoteDebuggingSupported": false, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "3.1.301" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "dotnet|3.1" + }, + "supportedFunctionsExtensionVersions": [ + "~3" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~3", + "isDeprecated": true, + "isDefault": true + } + ], + "endOfLifeDate": "Sat Dec 03 2022 00:00:00 GMT+0000 (Coordinated Universal Time)", + "isDeprecated": true, + "Sku": null + } + } + } + ] + }, + { + "displayText": ".NET Core 2", + "value": "dotnetcore2", + "minorVersions": [ + { + "displayText": ".NET Core 2.2", + "value": "2.2", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "2.2", + "appInsightsSettings": { + "isSupported": true + }, + "remoteDebuggingSupported": false, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "2.2.207" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true + }, + "supportedFunctionsExtensionVersions": [ + "~2" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~2", + "isDeprecated": true, + "isDefault": true + } + ] + }, + "linuxRuntimeSettings": { + "runtimeVersion": "dotnet|2.2", + "appInsightsSettings": { + "isSupported": true + }, + "remoteDebuggingSupported": false, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "2.2.207" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "dotnet" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "dotnet|2.2" + }, + "supportedFunctionsExtensionVersions": [ + "~2" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~2", + "isDeprecated": true, + "isDefault": true + } + ], + "Sku": null + } + } + } + ] + }, + { + "displayText": ".NET Framework 4", + "value": "dotnetframework4", + "minorVersions": [ + { + "displayText": ".NET Framework 4.7", + "value": "4.7", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "4.7", + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": false + }, + "appSettingsDictionary": {}, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true + }, + "supportedFunctionsExtensionVersions": [ + "~1" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~1", + "isDeprecated": true, + "isDefault": true + } + ] + } + } + } + ] + } + ] + } + }, + { + "id": null, + "name": "node", + "type": "Microsoft.Web/functionAppStacks?stackOsType=All", + "properties": { + "displayText": "Node.js", + "value": "node", + "preferredOs": "windows", + "majorVersions": [ + { + "displayText": "Node.js 24", + "value": "24", + "minorVersions": [ + { + "displayText": "Node.js 24", + "value": "24 LTS", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "~24", + "isPreview": true, + "isDefault": false, + "isHidden": false, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "24.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "node", + "WEBSITE_NODE_DEFAULT_VERSION": "~24" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "netFrameworkVersion": "v6.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Mon Apr 30 2029 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "Node|24", + "isPreview": true, + "isDefault": false, + "isHidden": false, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "24.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "node" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Node|24" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Mon Apr 30 2029 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": null + } + } + } + ] + }, + { + "displayText": "Node.js 22", + "value": "22", + "minorVersions": [ + { + "displayText": "Node.js 22", + "value": "22 LTS", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "~22", + "isDefault": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "22.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "node", + "WEBSITE_NODE_DEFAULT_VERSION": "~22" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true, + "netFrameworkVersion": "v6.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Fri Apr 30 2027 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "Node|22", + "isDefault": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "22.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "node" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Node|22" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Fri Apr 30 2027 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": [ + { + "skuCode": "FC1", + "instanceMemoryMB": [ + { + "size": 512, + "isDefault": false + }, + { + "size": 2048, + "isDefault": true + }, + { + "size": 4096, + "isDefault": false + } + ], + "maximumInstanceCount": { + "lowestMaximumInstanceCount": 40, + "highestMaximumInstanceCount": 1000, + "defaultValue": 100 + }, + "functionAppConfigProperties": { + "runtime": { + "name": "node", + "version": "22" + } + } + } + ] + } + } + } + ] + }, + { + "displayText": "Node.js 20", + "value": "20", + "minorVersions": [ + { + "displayText": "Node.js 20 LTS", + "value": "20 LTS", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "~20", + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "20.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "node", + "WEBSITE_NODE_DEFAULT_VERSION": "~20" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true, + "netFrameworkVersion": "v6.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Thu Apr 30 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "Node|20", + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "20.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "node" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Node|20" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Thu Apr 30 2026 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": [ + { + "skuCode": "FC1", + "instanceMemoryMB": [ + { + "size": 512, + "isDefault": false + }, + { + "size": 2048, + "isDefault": true + }, + { + "size": 4096, + "isDefault": false + } + ], + "maximumInstanceCount": { + "lowestMaximumInstanceCount": 40, + "highestMaximumInstanceCount": 1000, + "defaultValue": 100 + }, + "functionAppConfigProperties": { + "runtime": { + "name": "node", + "version": "20" + } + } + } + ] + } + } + } + ] + }, + { + "displayText": "Node.js 18", + "value": "18", + "minorVersions": [ + { + "displayText": "Node.js 18 LTS", + "value": "18 LTS", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "~18", + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "18.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "node", + "WEBSITE_NODE_DEFAULT_VERSION": "~18" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true, + "netFrameworkVersion": "v6.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Wed Apr 30 2025 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "Node|18", + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "18.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "node" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Node|18" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Wed Apr 30 2025 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": null + } + } + } + ] + }, + { + "displayText": "Node.js 16", + "value": "16", + "minorVersions": [ + { + "displayText": "Node.js 16 LTS", + "value": "16 LTS", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "~16", + "isDeprecated": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "16.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "node", + "WEBSITE_NODE_DEFAULT_VERSION": "~16" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true, + "netFrameworkVersion": "v6.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Sun Jun 30 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "Node|16", + "isDeprecated": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "16.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "node" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Node|16" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Sun Jun 30 2024 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": null + } + } + } + ] + }, + { + "displayText": "Node.js 14", + "value": "14", + "minorVersions": [ + { + "displayText": "Node.js 14 LTS", + "value": "14 LTS", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "~14", + "isDeprecated": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "14.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "node", + "WEBSITE_NODE_DEFAULT_VERSION": "~14" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true, + "netFrameworkVersion": "v6.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4", + "~3" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + }, + { + "version": "~3", + "isDeprecated": true, + "isDefault": false + } + ], + "endOfLifeDate": "Sun Apr 30 2023 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "Node|14", + "isDeprecated": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "14.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "node" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Node|14" + }, + "supportedFunctionsExtensionVersions": [ + "~4", + "~3" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + }, + { + "version": "~3", + "isDeprecated": true, + "isDefault": false + } + ], + "endOfLifeDate": "Sun Apr 30 2023 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": null + } + } + } + ] + }, + { + "displayText": "Node.js 12", + "value": "12", + "minorVersions": [ + { + "displayText": "Node.js 12 LTS", + "value": "12 LTS", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "~12", + "isDeprecated": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "12.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "node", + "WEBSITE_NODE_DEFAULT_VERSION": "~12" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true + }, + "supportedFunctionsExtensionVersions": [ + "~3" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~3", + "isDeprecated": true, + "isDefault": true + } + ], + "endOfLifeDate": "Tue Dec 13 2022 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "Node|12", + "isDeprecated": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "12.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "node" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Node|12" + }, + "supportedFunctionsExtensionVersions": [ + "~3" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~3", + "isDeprecated": true, + "isDefault": true + } + ], + "endOfLifeDate": "Tue Dec 13 2022 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": null + } + } + } + ] + }, + { + "displayText": "Node.js 10", + "value": "10", + "minorVersions": [ + { + "displayText": "Node.js 10 LTS", + "value": "10 LTS", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "~10", + "isDeprecated": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "10.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "node", + "WEBSITE_NODE_DEFAULT_VERSION": "~10" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true + }, + "supportedFunctionsExtensionVersions": [ + "~2", + "~3" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~2", + "isDeprecated": true, + "isDefault": true + }, + { + "version": "~3", + "isDeprecated": true, + "isDefault": false + } + ], + "endOfLifeDate": "Fri Apr 30 2021 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "Node|10", + "isDeprecated": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "10.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "node" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Node|10" + }, + "supportedFunctionsExtensionVersions": [ + "~2", + "~3" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~2", + "isDeprecated": true, + "isDefault": true + }, + { + "version": "~3", + "isDeprecated": true, + "isDefault": false + } + ], + "endOfLifeDate": "Fri Apr 30 2021 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": null + } + } + } + ] + }, + { + "displayText": "Node.js 8", + "value": "8", + "minorVersions": [ + { + "displayText": "Node.js 8 LTS", + "value": "8 LTS", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "~8", + "isDeprecated": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "8.x" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "node", + "WEBSITE_NODE_DEFAULT_VERSION": "~8" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true + }, + "supportedFunctionsExtensionVersions": [ + "~2" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~2", + "isDeprecated": true, + "isDefault": true + } + ], + "endOfLifeDate": "Tue Dec 31 2019 00:00:00 GMT+0000 (Coordinated Universal Time)" + } + } + } + ] + }, + { + "displayText": "Node.js 6", + "value": "6", + "minorVersions": [ + { + "displayText": "Node.js 6 LTS", + "value": "6 LTS", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "~6", + "isDeprecated": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": false + }, + "appSettingsDictionary": { + "WEBSITE_NODE_DEFAULT_VERSION": "~6" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true + }, + "supportedFunctionsExtensionVersions": [ + "~1" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~1", + "isDeprecated": true, + "isDefault": true + } + ], + "endOfLifeDate": "Tue Apr 30 2019 00:00:00 GMT+0000 (Coordinated Universal Time)" + } + } + } + ] + } + ] + } + }, + { + "id": null, + "name": "python", + "type": "Microsoft.Web/functionAppStacks?stackOsType=All", + "properties": { + "displayText": "Python", + "value": "python", + "preferredOs": "linux", + "majorVersions": [ + { + "displayText": "Python 3", + "value": "3", + "minorVersions": [ + { + "displayText": "Python 3.14", + "value": "3.14", + "stackSettings": { + "linuxRuntimeSettings": { + "runtimeVersion": "Python|3.14", + "remoteDebuggingSupported": false, + "isPreview": true, + "isDefault": false, + "isHidden": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "3.14" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "python" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Python|3.14" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Thu Oct 31 2030 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": null + } + } + }, + { + "displayText": "Python 3.13", + "value": "3.13", + "stackSettings": { + "linuxRuntimeSettings": { + "runtimeVersion": "Python|3.13", + "remoteDebuggingSupported": false, + "isPreview": false, + "isDefault": true, + "isHidden": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "3.13" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "python" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Python|3.13" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Wed Oct 31 2029 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": [ + { + "skuCode": "FC1", + "instanceMemoryMB": [ + { + "size": 512, + "isDefault": false + }, + { + "size": 2048, + "isDefault": true + }, + { + "size": 4096, + "isDefault": false + } + ], + "maximumInstanceCount": { + "lowestMaximumInstanceCount": 40, + "highestMaximumInstanceCount": 1000, + "defaultValue": 100 + }, + "functionAppConfigProperties": { + "runtime": { + "name": "python", + "version": "3.13" + } + } + } + ] + } + } + }, + { + "displayText": "Python 3.12", + "value": "3.12", + "stackSettings": { + "linuxRuntimeSettings": { + "runtimeVersion": "Python|3.12", + "remoteDebuggingSupported": false, + "isPreview": false, + "isDefault": true, + "isHidden": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "3.12" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "python" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Python|3.12" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Tue Oct 31 2028 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": [ + { + "skuCode": "FC1", + "instanceMemoryMB": [ + { + "size": 512, + "isDefault": false + }, + { + "size": 2048, + "isDefault": true + }, + { + "size": 4096, + "isDefault": false + } + ], + "maximumInstanceCount": { + "lowestMaximumInstanceCount": 40, + "highestMaximumInstanceCount": 1000, + "defaultValue": 100 + }, + "functionAppConfigProperties": { + "runtime": { + "name": "python", + "version": "3.12" + } + } + } + ] + } + } + }, + { + "displayText": "Python 3.11", + "value": "3.11", + "stackSettings": { + "linuxRuntimeSettings": { + "runtimeVersion": "Python|3.11", + "remoteDebuggingSupported": false, + "isPreview": false, + "isDefault": true, + "isHidden": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "3.11" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "python" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Python|3.11" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Sun Oct 31 2027 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": [ + { + "skuCode": "FC1", + "instanceMemoryMB": [ + { + "size": 512, + "isDefault": false + }, + { + "size": 2048, + "isDefault": true + }, + { + "size": 4096, + "isDefault": false + } + ], + "maximumInstanceCount": { + "lowestMaximumInstanceCount": 40, + "highestMaximumInstanceCount": 1000, + "defaultValue": 100 + }, + "functionAppConfigProperties": { + "runtime": { + "name": "python", + "version": "3.11" + } + } + } + ] + } + } + }, + { + "displayText": "Python 3.10", + "value": "3.10", + "stackSettings": { + "linuxRuntimeSettings": { + "runtimeVersion": "Python|3.10", + "remoteDebuggingSupported": false, + "isPreview": false, + "isDefault": true, + "isHidden": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "3.10" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "python" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Python|3.10" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Sat Oct 31 2026 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": [ + { + "skuCode": "FC1", + "instanceMemoryMB": [ + { + "size": 512, + "isDefault": false + }, + { + "size": 2048, + "isDefault": true + }, + { + "size": 4096, + "isDefault": false + } + ], + "maximumInstanceCount": { + "lowestMaximumInstanceCount": 40, + "highestMaximumInstanceCount": 1000, + "defaultValue": 100 + }, + "functionAppConfigProperties": { + "runtime": { + "name": "python", + "version": "3.10" + } + } + } + ] + } + } + }, + { + "displayText": "Python 3.9", + "value": "3.9", + "stackSettings": { + "linuxRuntimeSettings": { + "runtimeVersion": "Python|3.9", + "remoteDebuggingSupported": false, + "isPreview": false, + "isDefault": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "3.9" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "python" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Python|3.9" + }, + "supportedFunctionsExtensionVersions": [ + "~4", + "~3" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + }, + { + "version": "~3", + "isDeprecated": true, + "isDefault": false + } + ], + "endOfLifeDate": "Fri Oct 31 2025 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": null + } + } + }, + { + "displayText": "Python 3.8", + "value": "3.8", + "stackSettings": { + "linuxRuntimeSettings": { + "runtimeVersion": "Python|3.8", + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "3.8" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "python" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Python|3.8" + }, + "supportedFunctionsExtensionVersions": [ + "~4", + "~3" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + }, + { + "version": "~3", + "isDeprecated": true, + "isDefault": false + } + ], + "endOfLifeDate": "Mon Oct 07 2024 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": null + } + } + }, + { + "displayText": "Python 3.7", + "value": "3.7", + "stackSettings": { + "linuxRuntimeSettings": { + "runtimeVersion": "Python|3.7", + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "3.7" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "python" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Python|3.7" + }, + "supportedFunctionsExtensionVersions": [ + "~4", + "~3", + "~2" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + }, + { + "version": "~3", + "isDeprecated": true, + "isDefault": false + }, + { + "version": "~2", + "isDeprecated": true, + "isDefault": false + } + ], + "endOfLifeDate": "Tue Jun 27 2023 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": null + } + } + }, + { + "displayText": "Python 3.6", + "value": "3.6", + "stackSettings": { + "linuxRuntimeSettings": { + "runtimeVersion": "Python|3.6", + "isDeprecated": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "3.6" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "python" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Python|3.6" + }, + "supportedFunctionsExtensionVersions": [ + "~2", + "~3" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~2", + "isDeprecated": true, + "isDefault": true + }, + { + "version": "~3", + "isDeprecated": true, + "isDefault": false + } + ], + "endOfLifeDate": "Thu Dec 23 2021 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": null + } + } + } + ] + } + ] + } + }, + { + "id": null, + "name": "java", + "type": "Microsoft.Web/functionAppStacks?stackOsType=All", + "properties": { + "displayText": "Java", + "value": "java", + "preferredOs": "windows", + "majorVersions": [ + { + "displayText": "Java 25", + "value": "25", + "minorVersions": [ + { + "displayText": "Java 25", + "value": "25.0", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "25", + "isPreview": true, + "isHidden": false, + "isAutoUpdate": true, + "isDefault": false, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "25" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "java" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true, + "javaVersion": "25", + "netFrameworkVersion": "v6.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Wed Sep 01 2032 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "Java|25", + "isPreview": true, + "isHidden": false, + "isAutoUpdate": true, + "isDefault": false, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "25" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "java" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Java|25" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Wed Sep 01 2032 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": null + } + } + } + ] + }, + { + "displayText": "Java 21", + "value": "21", + "minorVersions": [ + { + "displayText": "Java 21", + "value": "21.0", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "21", + "isPreview": false, + "isHidden": false, + "isAutoUpdate": true, + "isDefault": false, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "21" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "java" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true, + "javaVersion": "21", + "netFrameworkVersion": "v6.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Fri Sep 01 2028 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "Java|21", + "isPreview": false, + "isHidden": false, + "isAutoUpdate": true, + "isDefault": false, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "21" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "java" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Java|21" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Fri Sep 01 2028 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": [ + { + "skuCode": "FC1", + "instanceMemoryMB": [ + { + "size": 512, + "isDefault": false + }, + { + "size": 2048, + "isDefault": true + }, + { + "size": 4096, + "isDefault": false + } + ], + "maximumInstanceCount": { + "lowestMaximumInstanceCount": 40, + "highestMaximumInstanceCount": 1000, + "defaultValue": 100 + }, + "functionAppConfigProperties": { + "runtime": { + "name": "java", + "version": "21" + } + } + } + ] + } + } + } + ] + }, + { + "displayText": "Java 17", + "value": "17", + "minorVersions": [ + { + "displayText": "Java 17", + "value": "17.0", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "17", + "isPreview": false, + "isHidden": false, + "isAutoUpdate": true, + "isDefault": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "17" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "java" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true, + "javaVersion": "17", + "netFrameworkVersion": "v6.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Wed Sep 01 2027 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "Java|17", + "isPreview": false, + "isHidden": false, + "isAutoUpdate": true, + "isDefault": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "17" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "java" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Java|17" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Wed Sep 01 2027 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": [ + { + "skuCode": "FC1", + "instanceMemoryMB": [ + { + "size": 512, + "isDefault": false + }, + { + "size": 2048, + "isDefault": true + }, + { + "size": 4096, + "isDefault": false + } + ], + "maximumInstanceCount": { + "lowestMaximumInstanceCount": 40, + "highestMaximumInstanceCount": 1000, + "defaultValue": 100 + }, + "functionAppConfigProperties": { + "runtime": { + "name": "java", + "version": "17" + } + } + } + ] + } + } + } + ] + }, + { + "displayText": "Java 11", + "value": "11", + "minorVersions": [ + { + "displayText": "Java 11", + "value": "11.0", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "11", + "isAutoUpdate": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "11" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "java" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true, + "javaVersion": "11", + "netFrameworkVersion": "v6.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4", + "~3" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + }, + { + "version": "~3", + "isDeprecated": true, + "isDefault": false + } + ], + "endOfLifeDate": "Wed Sep 01 2027 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "Java|11", + "isAutoUpdate": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "11" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "java" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Java|11" + }, + "supportedFunctionsExtensionVersions": [ + "~4", + "~3" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + }, + { + "version": "~3", + "isDeprecated": true, + "isDefault": false + } + ], + "endOfLifeDate": "Wed Sep 01 2027 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": [ + { + "skuCode": "FC1", + "instanceMemoryMB": [ + { + "size": 512, + "isDefault": false + }, + { + "size": 2048, + "isDefault": true + }, + { + "size": 4096, + "isDefault": false + } + ], + "maximumInstanceCount": { + "lowestMaximumInstanceCount": 40, + "highestMaximumInstanceCount": 1000, + "defaultValue": 100 + }, + "functionAppConfigProperties": { + "runtime": { + "name": "java", + "version": "11" + } + } + } + ] + } + } + } + ] + }, + { + "displayText": "Java 8", + "value": "8", + "minorVersions": [ + { + "displayText": "Java 8", + "value": "8.0", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "1.8", + "isAutoUpdate": true, + "isDefault": false, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "8" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "java" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true, + "javaVersion": "1.8", + "netFrameworkVersion": "v6.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4", + "~3", + "~2" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + }, + { + "version": "~3", + "isDeprecated": true, + "isDefault": false + }, + { + "version": "~2", + "isDeprecated": true, + "isDefault": false + } + ], + "endOfLifeDate": "Mon Nov 30 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "Java|8", + "isAutoUpdate": true, + "isDefault": false, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true, + "supportedVersion": "8" + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "java" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "Java|8" + }, + "supportedFunctionsExtensionVersions": [ + "~4", + "~3" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + }, + { + "version": "~3", + "isDeprecated": true, + "isDefault": false + } + ], + "endOfLifeDate": "Mon Nov 30 2026 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": null + } + } + } + ] + } + ] + } + }, + { + "id": null, + "name": "powershell", + "type": "Microsoft.Web/functionAppStacks?stackOsType=All", + "properties": { + "displayText": "PowerShell Core", + "value": "powershell", + "preferredOs": "windows", + "majorVersions": [ + { + "displayText": "PowerShell 7", + "value": "7", + "minorVersions": [ + { + "displayText": "PowerShell 7.4", + "value": "7.4", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "7.4", + "isDefault": true, + "isPreview": false, + "isHidden": false, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "powershell" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true, + "powerShellVersion": "7.4", + "netFrameworkVersion": "v8.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "PowerShell|7.4", + "isDefault": true, + "isPreview": false, + "isHidden": false, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "powershell" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "PowerShell|7.4" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Tue Nov 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": [ + { + "skuCode": "FC1", + "instanceMemoryMB": [ + { + "size": 512, + "isDefault": false + }, + { + "size": 2048, + "isDefault": true + }, + { + "size": 4096, + "isDefault": false + } + ], + "maximumInstanceCount": { + "lowestMaximumInstanceCount": 40, + "highestMaximumInstanceCount": 1000, + "defaultValue": 100 + }, + "functionAppConfigProperties": { + "runtime": { + "name": "powershell", + "version": "7.4" + } + } + } + ] + } + } + }, + { + "displayText": "PowerShell 7.2", + "value": "7.2", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "7.2", + "isDefault": false, + "isPreview": false, + "isHidden": false, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "powershell" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true, + "powerShellVersion": "7.2", + "netFrameworkVersion": "v6.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Fri Nov 08 2024 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "PowerShell|7.2", + "isDefault": false, + "isPreview": false, + "isHidden": false, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "powershell" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "PowerShell|7.2" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Fri Nov 08 2024 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": null + } + } + }, + { + "displayText": "PowerShell 7.0", + "value": "7.0", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "~7", + "isDeprecated": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "powershell" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true, + "powerShellVersion": "~7", + "netFrameworkVersion": "v6.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4", + "~3" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + }, + { + "version": "~3", + "isDeprecated": true, + "isDefault": false + } + ], + "endOfLifeDate": "Sat Dec 03 2022 00:00:00 GMT+0000 (Coordinated Universal Time)" + }, + "linuxRuntimeSettings": { + "runtimeVersion": "PowerShell|7", + "isAutoUpdate": true, + "isPreview": false, + "isDeprecated": true, + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "powershell" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "PowerShell|7" + }, + "supportedFunctionsExtensionVersions": [ + "~4" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + } + ], + "endOfLifeDate": "Sat Dec 03 2022 00:00:00 GMT+0000 (Coordinated Universal Time)", + "Sku": null + } + } + } + ] + }, + { + "displayText": "PowerShell Core 6", + "value": "6", + "minorVersions": [ + { + "displayText": "PowerShell Core 6.2", + "value": "6.2", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "~6", + "remoteDebuggingSupported": false, + "appInsightsSettings": { + "isSupported": true + }, + "gitHubActionSettings": { + "isSupported": true + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "powershell" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true, + "powerShellVersion": "~6" + }, + "isDeprecated": true, + "supportedFunctionsExtensionVersions": [ + "~2", + "~3" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~2", + "isDeprecated": true, + "isDefault": true + }, + { + "version": "~3", + "isDeprecated": true, + "isDefault": false + } + ], + "endOfLifeDate": "Fri Sep 30 2022 00:00:00 GMT+0000 (Coordinated Universal Time)" + } + } + } + ] + } + ] + } + }, + { + "id": null, + "name": "custom", + "type": "Microsoft.Web/functionAppStacks?stackOsType=All", + "properties": { "displayText": "Custom Handler", "value": "custom", - "stackSettings": { - "windowsRuntimeSettings": { - "runtimeVersion": "custom", - "appInsightsSettings": { "isSupported": true }, - "remoteDebuggingSupported": false, - "gitHubActionSettings": { "isSupported": false }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "custom" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": true, - "netFrameworkVersion": "v6.0" - }, - "supportedFunctionsExtensionVersions": [ "~4", "~3", "~2" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - }, - { - "version": "~2", - "isDeprecated": true, - "isDefault": false - } - ] - }, - "linuxRuntimeSettings": { - "runtimeVersion": "", - "isPreview": false, - "appInsightsSettings": { "isSupported": true }, - "remoteDebuggingSupported": false, - "gitHubActionSettings": { "isSupported": false }, - "appSettingsDictionary": { "FUNCTIONS_WORKER_RUNTIME": "custom" }, - "siteConfigPropertiesDictionary": { - "use32BitWorkerProcess": false, - "linuxFxVersion": "" - }, - "supportedFunctionsExtensionVersions": [ "~4", "~3", "~2" ], - "supportedFunctionsExtensionVersionsInfo": [ - { - "version": "~4", - "isDeprecated": false, - "isDefault": true - }, - { - "version": "~3", - "isDeprecated": true, - "isDefault": false - }, - { - "version": "~2", - "isDeprecated": true, - "isDefault": false - } - ] - } - } - } - ] - } - ] - } - } - ], - "nextLink": null, - "id": null -} \ No newline at end of file + "preferredOs": "windows", + "majorVersions": [ + { + "displayText": "Custom Handler", + "value": "custom", + "minorVersions": [ + { + "displayText": "Custom Handler", + "value": "custom", + "stackSettings": { + "windowsRuntimeSettings": { + "runtimeVersion": "custom", + "appInsightsSettings": { + "isSupported": true + }, + "remoteDebuggingSupported": false, + "gitHubActionSettings": { + "isSupported": false + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "custom" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": true, + "netFrameworkVersion": "v6.0" + }, + "supportedFunctionsExtensionVersions": [ + "~4", + "~3", + "~2" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + }, + { + "version": "~3", + "isDeprecated": true, + "isDefault": false + }, + { + "version": "~2", + "isDeprecated": true, + "isDefault": false + } + ] + }, + "linuxRuntimeSettings": { + "runtimeVersion": "", + "isPreview": false, + "appInsightsSettings": { + "isSupported": true + }, + "remoteDebuggingSupported": false, + "gitHubActionSettings": { + "isSupported": false + }, + "appSettingsDictionary": { + "FUNCTIONS_WORKER_RUNTIME": "custom" + }, + "siteConfigPropertiesDictionary": { + "use32BitWorkerProcess": false, + "linuxFxVersion": "" + }, + "supportedFunctionsExtensionVersions": [ + "~4", + "~3", + "~2" + ], + "supportedFunctionsExtensionVersionsInfo": [ + { + "version": "~4", + "isDeprecated": false, + "isDefault": true + }, + { + "version": "~3", + "isDeprecated": true, + "isDefault": false + }, + { + "version": "~2", + "isDeprecated": true, + "isDefault": false + } + ], + "Sku": [ + { + "skuCode": "FC1", + "instanceMemoryMB": [ + { + "size": 512, + "isDefault": false + }, + { + "size": 2048, + "isDefault": true + }, + { + "size": 4096, + "isDefault": false + } + ], + "maximumInstanceCount": { + "lowestMaximumInstanceCount": 40, + "highestMaximumInstanceCount": 1000, + "defaultValue": 100 + }, + "functionAppConfigProperties": { + "runtime": { + "name": "custom", + "version": "1.0" + } + } + } + ] + } + } + } + ] + } + ] + } + } + ], + "nextLink": null, + "id": null +}