首页 > 解决方案 > Azure 函数的 ARM 模板忽略 preWarmedInstanceCount 设置

问题描述

我正在使用 Azure PowerShell 脚本将 Azure 功能部署到高级功能计划(弹性)中:

New-AzResourceGroupDeployment -ResourceGroupName $RESOURCE_GROUP -TemplateFile "function-app.json" -TemplateParameterObject $params -Name $APP_SERVICE_NAME -Mode Incremental  > $null

并且部署忽略了我的preWarmedInstanceCount设置。新创建的函数的Always Ready Instances = 0(见屏幕截图)

在此处输入图像描述

ARM函数模板:

{
  "apiVersion": "2020-06-01",
  "name": "[parameters('siteName')]",
  "type": "Microsoft.Web/sites",
  "identity": {
    "type": "systemAssigned"
  },
  "kind": "functionapp",
  "location": "[resourceGroup().location]",
  "properties": {
    "name": "[parameters('siteName')]",
    "serverFarmId": "[resourceId(parameters('appServicePlanRg'),'Microsoft.Web/serverfarms',parameters('appServicePlanName'))]",
    "clientAffinityEnabled": false,
    "siteConfig": {
      "use32BitWorkerProcess": false,
      "preWarmedInstanceCount": 2,
      "appSettings": [
        {
          "name": "FUNCTIONS_EXTENSION_VERSION",
          "value": "~3"
        },
        {
          "name": "WEBSITE_CONTENTAZUREFILECONNECTIONSTRING",
          "value": "DefaultEndpointsProtocol=https;AccountName=xxx..."
        },
        {
          "name": "WEBSITE_CONTENTSHARE",
          "value": "asggas"
        }
      ]
    }
  }
}

在我看来,几天前它确实工作正常,我设法通过 arm 模板设置了该值,现在我只能通过 Azure 门户更新它。

这是我的托管计划的 ARM 模板:

{
  "type": "Microsoft.Web/serverfarms",
  "apiVersion": "2018-02-01",
  "name": "[parameters('appServicePlanName')]",
  "location": "[resourceGroup().location]",
  "properties": {
    "name": "[parameters('appServicePlanName')]",
    "workerSize": "1",
    "numberOfWorkers": "1",
    "maximumElasticWorkerCount": 20
  },
  "sku": {
    "Tier": "ElasticPremium",
    "Name": "EP2"
  }
}

标签: azuredeploymentazure-functionsarm-template

解决方案


经过一番调查,我来到“活动日志”(在门户上手动更新后)屏幕,我很惊讶我想要的属性被命名为“minimumElasticInstanceCount”(它在任何一个 ARM API 版本https://docs 中都没有记录。 microsoft.com/en-us/azure/templates/microsoft.web/sites

更改日志

然后我将此字段添加到我的 ARM 模板中,现在一切看起来都很好。此处还发布了“始终就绪实例”(minimumElasticInstanceCount)和“预热实​​例”(preWarmedInstanceCount)之间的一些解释和区别:https ://docs.microsoft.com/uk-ua/azure/azure-functions/functions-保费计划

所以在 Azure Portal Pre-warmed 实例设置不显示。我正在寻找另一个设置。


推荐阅读