Azure webapp:堆栈设置
Azure webapp: Stack settings
我可以通过门户为网络应用程序设置我的堆栈:
我通过 ARM 模板部署我的基础设施:
"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')]"
}
]
}
}
}
部署到此的代码是 .NET Core 2.2 应用程序。我看不到任何可以设置堆栈设置的地方:https://docs.microsoft.com/en-us/azure/templates/microsoft.web/2018-11-01/sites,但是当我部署 .NET Core 代码时,一切正常。 "Stack settings" 有什么用?为什么我不能通过ARM设置它?我什至需要设置它吗?我想象运行时可以猜测它是一个.NET Core 应用程序,然后让它自动运行。
Stack settings就是设置你想要的语言和版本 use.App 服务支持六种语言堆栈:ASP.NET Core
Node.js
PHP
Python
Java
Ruby
。如果您在 windows 上创建,则可以在门户网站上选择 5 个堆栈(.NET .NET Core PHP Python Java)。如果选择linux,门户网站上有7个栈可以选择(Ruby Node PHP .NET Core Java8 Java11 Python) .
您似乎在 windows OS 上创建了应用服务,因此在初始创建 Web 应用后,不再需要识别应用是 .NET Core 应用因为 .NET Core 位已经安装在底层 worker 上。您可以查看此 Offical doc 以了解有关 Azure 应用服务配置的更多信息。
我可以通过门户为网络应用程序设置我的堆栈:
我通过 ARM 模板部署我的基础设施:
"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')]"
}
]
}
}
}
部署到此的代码是 .NET Core 2.2 应用程序。我看不到任何可以设置堆栈设置的地方:https://docs.microsoft.com/en-us/azure/templates/microsoft.web/2018-11-01/sites,但是当我部署 .NET Core 代码时,一切正常。 "Stack settings" 有什么用?为什么我不能通过ARM设置它?我什至需要设置它吗?我想象运行时可以猜测它是一个.NET Core 应用程序,然后让它自动运行。
Stack settings就是设置你想要的语言和版本 use.App 服务支持六种语言堆栈:ASP.NET Core
Node.js
PHP
Python
Java
Ruby
。如果您在 windows 上创建,则可以在门户网站上选择 5 个堆栈(.NET .NET Core PHP Python Java)。如果选择linux,门户网站上有7个栈可以选择(Ruby Node PHP .NET Core Java8 Java11 Python) .
您似乎在 windows OS 上创建了应用服务,因此在初始创建 Web 应用后,不再需要识别应用是 .NET Core 应用因为 .NET Core 位已经安装在底层 worker 上。您可以查看此 Offical doc 以了解有关 Azure 应用服务配置的更多信息。