问题
I can set my stack for a webapp through the portal:
I deploy my infra through an ARM template:
"apiVersion": "2015-08-01",
"type": "Microsoft.Web/sites",
"name": "[variables('name')]",
"location": "[parameters('location')]",
"dependsOn": [
"[concat(parameters('customer'),'-','webapp-small','-' , 'plan','-',parameters('env'))]"
],
"properties": {
"clientAffinityEnabled": false,
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', concat(parameters('customer'),'-','webapp-small','-' , 'plan','-',parameters('env')))]",
"siteConfig": {
"alwaysOn": "[parameters('webAppAlwaysOn')]",
"use32BitWorkerProcess": true,
"connectionStrings": [
],
"appSettings": [
{
"name": "WEBSITE_LOAD_CERTIFICATES",
"value": "[reference(variables('name')).thumbprint]"
},
{
"name": "WEBSITE_RUN_FROM_PACKAGE",
"value": 0
},
{
"name": "WEBSITE_ADD_SITENAME_BINDINGS_IN_APPHOST_CONFIG",
"value": 1
},
{
"name": "ASPNETCORE_ENVIRONMENT",
"value": "[parameters('AspNetCoreEnvironment')]"
},
{
"name": "EnvironmentOptions:ResourceGroupPostfix",
"value": "[parameters('env')]"
},
{
"name": "APPINSIGHTS_INSTRUMENTATIONKEY",
"value": "[reference(variables('aiWebName')).InstrumentationKey]"
},
{
"name": "IpWhiteList",
"value": "[parameters('whitelist')]"
}
]
}
}
}
The code deployed to this is a .NET Core 2.2 app. I can't see any place where i can set the stack settings: https://docs.microsoft.com/en-us/azure/templates/microsoft.web/2018-11-01/sites, but when i deploy the .NET Core code, everything works. What is the "Stack settings" for? Why can't I set it through ARM? Do I even need to set it? I imagine that the runtime can guess that it is a .NET Core application and then make it work automatically.
回答1:
Stack settings is to set what kind of language and the version of it that you want to use.App Service support six kind of language stacks: ASP.NET Core
Node.js
PHP
Python
Java
Ruby
. If you create on windows, there are 5 stacks can selected on portal(.NET .NET Core PHP Python Java). If you choose linux, there are 7 stacks can selected on portal(Ruby Node PHP .NET Core Java8 Java11 Python).
It looks like you create a app service on windows OS, so after initial web app creation, there isn’t a need to identify that an app is a .NET Core app anymore because the .NET Core bits are already installed on the underlying worker. You can have a look of this Offical doc to learn more about Azure App Service Configuration.
来源:https://stackoverflow.com/questions/58392312/azure-webapp-stack-settings