如何通过 Azure 资源管理器在 .Net Core 上将 Azure App Service 设置为 运行

How to setup Azure App Service to run on .Net Core through Azure Resource Manager

我已经使用以下 ARM 模板片段设置了应用服务:

{
  "name": "[variables('webBackEnd')]",
  "type": "Microsoft.Web/sites",
  "location": "[parameters('location')]",
  "apiVersion": "2015-08-01",
  "dependsOn": [
    "[resourceId('Microsoft.Web/serverfarms', parameters('hostingPlanName'))]"
  ],
  "tags": {
    "[concat('hidden-related:', resourceId('Microsoft.Web/serverfarms', parameters('hostingPlanName')))]": "Resource",
    "displayName": "BackendWebApp"
  },
  "properties": {
    "name": "[variables('webBackEnd')]",
    "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('hostingPlanName'))]"
  }
},

这将部署应用服务。但是,默认情况下,它将设置为使用 .Net Framework。下面是我的 Azure 门户的视图:

为了 运行 我的 ASP.Net 基于核心的 Web 服务器,我必须手动将堆栈设置从“.Net”切换到“.Net Core”。这是一件微不足道的事情,但我更愿意通过 ARM 模板正确配置它。我搜索了 Microsoft's docs,但找不到正确的 属性。如何做到这一点?

以下是从门户创建的示例 Web 应用程序的外观:

{
    "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
    }
},

并且当前堆栈值为dotnetcore

已接受的答案对我不起作用。我开始了自己的调查并完成了这段代码,它适用于我的情况。

"type": "Microsoft.Web/sites",
"apiVersion": "2018-11-01",
"name": "[parameters('site_name')]",
"location": "[resourceGroup().location]",
.........................................

"resources": [
 {
    "name": "metadata",
    "type": "config",
    "apiVersion": "2018-11-01",
    "dependsOn": [
        "[resourceId('Microsoft.Web/sites', parameters('site_name'))]"
    ],
    "tags": {
    },
    "properties": {
        "CURRENT_STACK": "dotnetcore"
    }
 }
]