我有一条管道,该管道将使用ARM模板更新我的Azure资源组。在我的资源组中,我有一个Linux应用程序服务计划。当我的管道运行时,出现以下错误:
2020-02-24T09:13:47.8665770Z ##[error]The template deployment 'template-20200224-091344-94a5' is not valid according to the validation procedure. The tracking id is 'cba7977a-ed1a-4807-a8bb-d7387bb9eae1'. See inner errors for details.
2020-02-24T09:13:47.8673575Z ##[error]Details:
2020-02-24T09:13:47.8683161Z ##[error]ValidationForResourceFailed: Validation failed for a resource. Check 'Error.Details[0]' for more information. [{"code":"FreeLinuxSkuNotAllowedInResourceGroup","message":"Cannot create a Linux app service plan because there is a limit of 1 free tier linux app service plan per subscription."}]
2020-02-24T09:13:47.8695096Z ##[error]Task failed while creating or updating the template deployment.
我认为管道仅应更新我的应用程序服务计划,但似乎正在尝试创建一个新的计划。因此,我想发生的事情是它将创建一个新的,然后删除旧的。但是,由于有1个Linux应用服务计划的限制,并且已经存在一个,因此它不能这样做。
所以我的问题是,如何使我的管道仅覆盖旧的应用程序服务计划,而不是创建新的计划并删除旧的服务计划?
这是ARM模板中的资源:
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2018-02-01",
"name": "[parameters('serverfarms_project_api_name')]",
"location": "West Europe",
"tags": {
"Environment": "Dev"
},
"sku": {
"name": "F1",
"tier": "Free",
"size": "F1",
"family": "F",
"capacity": 1
},
"kind": "linux",
"properties": {
"perSiteScaling": false,
"maximumElasticWorkerCount": 1,
"isSpot": false,
"reserved": true,
"isXenon": false,
"hyperV": false,
"targetWorkerCount": 0,
"targetWorkerSizeId": 0
}
}
答案 0 :(得分:0)
用于arm模板更新现有资源-资源名称必须完全匹配。那是唯一的把戏。如果名称匹配-将更新资源,而不是创建一个具有相同名称的新资源(不是可能的)。