【发布时间】:2020-03-27 04:29:10
【问题描述】:
在 Azure Web App 的 ARM 模板中,如何指定应用程序的堆栈设置(.NET、.NET Core、PHP,...)?我看不到它的任何字段。
谢谢
【问题讨论】:
-
嗨!你能解释一下这个问题吗?也许您可以粘贴您拥有的代码。
标签: azure arm-template azure-webapps
在 Azure Web App 的 ARM 模板中,如何指定应用程序的堆栈设置(.NET、.NET Core、PHP,...)?我看不到它的任何字段。
谢谢
【问题讨论】:
标签: azure arm-template azure-webapps
在门户上创建 azure webapp 时,选择 Running stack 为 .Net Core 3.0(Current)。
然后点击Review+Create > Download a template for automation。您将看到包含metadata 属性的ARM 模板,当前堆栈值为dotnetcore。
{
"apiVersion": "2018-02-01",
"name": "[parameters('name')]",
"type": "Microsoft.Web/sites",
"location": "[parameters('location')]",
"properties": {
"name": "[parameters('name')]",
"siteConfig": {
"appSettings": [],
"metadata": [
{
"name": "CURRENT_STACK",
"value": "[parameters('currentStack')]"
}
]
},
// redacted some values
}
}
【讨论】:
"CURRENT_STACK": { "value": "dotnetcore" }
除了 Joey 的回答之外,.NET Core 的 CURRENT_STACK 的值将是 dotnetcore。
{
"type": "Microsoft.Web/sites",
"apiVersion": "2018-11-01",
"name": "<name>",
"location": "[resourceGroup().location]",
"kind": "app",
"properties": {
"enabled": true,
"siteConfig": {
"metadata": [
{
"name": "CURRENT_STACK",
"value": "dotnetcore"
}
]
}
}
}
【讨论】:
作为一个小提示:这个提议的解决方案仅适用于新的 WebApps...如果您想将现有的 WebApp 从 .Net4.x 更改为 .NetCore,您还必须清除“netFrameworkVersion”。否则堆栈不会改变。
正确的是:
{
"apiVersion": "2018-02-01",
"name": "[parameters('name')]",
"type": "Microsoft.Web/sites",
"location": "[parameters('location')]",
"properties": {
"name": "[parameters('name')]",
"siteConfig": {
"appSettings": [],
"netFrameworkVersion": "",
"metadata": [
{
"name": "CURRENT_STACK",
"value": "dotnetcore"
}
]
},
// redacted some values
}
}
【讨论】: