Azure Functions 的 ARM 模板忽略 preWarmedInstanceCount 设置
ARM template for Azure Function ignores preWarmedInstanceCount setting
我正在使用 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"
}
}
我已尝试重现该问题并在此处找出问题所在。
尝试使用“reservedInstanceCount”代替“preWarmedInstanceCount”。
您可以从 Azure 门户本身进行检查。从门户更新预留实例计数后,您可以导出模板:
然后将您之前的模板与导出的模板进行比较,您将能够看到差异。
经过一番调查,我来到“Activity 日志”(在门户网站上手动更新后)屏幕,令我惊讶的是我想要的 属性 被命名为“minimumElasticInstanceCount”(它不是在任一 ARM API 版本 https://docs.microsoft.com/en-us/azure/templates/microsoft.web/sites)
中的任何位置记录
然后我将此字段添加到我的 ARM 模板中,目前看起来一切正常。此处还发布了“始终就绪实例”(minimumElasticInstanceCount) 和“Pre-warmed 实例”(preWarmedInstanceCount) 之间的一些解释和区别:https://docs.microsoft.com/uk-ua/azure/azure-functions/functions-premium-plan
因此在 Azure 门户中 Pre-warmed 不显示实例设置。我正在寻找另一个设置。
我正在使用 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"
}
}
我已尝试重现该问题并在此处找出问题所在。
尝试使用“reservedInstanceCount”代替“preWarmedInstanceCount”。
您可以从 Azure 门户本身进行检查。从门户更新预留实例计数后,您可以导出模板:
然后将您之前的模板与导出的模板进行比较,您将能够看到差异。
经过一番调查,我来到“Activity 日志”(在门户网站上手动更新后)屏幕,令我惊讶的是我想要的 属性 被命名为“minimumElasticInstanceCount”(它不是在任一 ARM API 版本 https://docs.microsoft.com/en-us/azure/templates/microsoft.web/sites)
中的任何位置记录然后我将此字段添加到我的 ARM 模板中,目前看起来一切正常。此处还发布了“始终就绪实例”(minimumElasticInstanceCount) 和“Pre-warmed 实例”(preWarmedInstanceCount) 之间的一些解释和区别:https://docs.microsoft.com/uk-ua/azure/azure-functions/functions-premium-plan
因此在 Azure 门户中 Pre-warmed 不显示实例设置。我正在寻找另一个设置。