ARM 模板 Azure Web 应用程序 - 如何指定堆栈设置(.NET、.NET Core 等)?

ARM template Azure Web App - How do you specify Stack Settings (.NET, .NET Core,...)?

在 Azure Web App 的 ARM 模板中,如何指定应用程序的堆栈设置(.NET、.NET Core、PHP、...)?我看不到它的任何字段。

谢谢

在门户上创建 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
    }
}

添加到 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"
                        }
                    ]
                }
            }
        }

作为一个小提示:这个提议的解决方案只适用于新的 Web 应用程序......如果你想将现有的 Web 应用程序从 .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
    }
}