我对一系列 Azure 数据中心位置使用复制操作,以便为每个位置部署应用服务计划和网站。我能够创建流量管理器配置文件并使用复制对象将每个位置的端点添加到流量管理器配置文件中。
当我尝试将每个网站的 CNAME 设置为我的自定义域名时,按照此处的说明使用 Microsoft.Web/sites/hostNameBindings 资源,我想出了以下内容:
{
"type": "Microsoft.Web/sites/hostNameBindings",
"apiVersion": "[parameters('hostNameBindingsApiVersion')]",
"copy": {
"name": "hostNameBindingsEndpointsLoop",
"count": "[length(parameters('appServicePlanLocations'))]"
},
"name": "[concat(concat(variables('webSitePrefix'), parameters('appServicePlanLocations')[copyIndex()]), '/', variables('hostNameBindingsName'))]",
"location": "[parameters('appServicePlanLocations')[copyIndex()]]",
"dependsOn": [
"[concat('Microsoft.Network/trafficManagerProfiles/', variables('trafficManagerName'), '/azureEndpoints/', variables('trafficManagerEndpointPrefix'), parameters('appServicePlanLocations')[copyIndex()])]",
"[concat('Microsoft.Web/sites/', concat(variables('webSitePrefix'), parameters('appServicePlanLocations')[copyIndex()]))]"
],
"properties": {
"siteName": "[concat(variables('webSitePrefix'), parameters('appServicePlanLocations')[copyIndex()])]",
"domainId": null,
"hostNameType": "Verified"
}
}
使用它,实际设置了 CNAME,但 ARM 模板部署失败并出现以下错误:
{
"ErrorEntity": {
"Code": "Conflict",
"Message": "Cannot modify this site because another operation is in progress. Details: Id: {guid}, OperationName: RegisterTrafficManagerProfile, CreatedTime: 5/24/2016 11:13:54 PM, RequestId: {guid}, EntityType: 1",
"ExtendedCode": "59203",
"MessageTemplate": "Cannot modify this site because another operation is in progress. Details: {0}",
"Parameters": [
"Id: {guid}, OperationName: RegisterTrafficManagerProfile, CreatedTime: 5/24/2016 11:13:54 PM, RequestId:{guid}, EntityType: 1"
],
"InnerErrors": null
}
}
],
"Innererror": null
}
我不确定冲突是什么,因为我添加了依赖段以尝试等待创建网站以及流量管理器端点来完成其配置。我将尝试更改顺序,以便在创建网站后添加 CNAME,然后让流量管理器端点等待 CNAME 创建。我不明白为什么订单应该有所作为。
我是否正确定义了 arm 模板的 Microsoft.Web/sites/hostNameBindings 部分?在这种情况下,依赖顺序是否重要?应该是?