ARM Template - конфликтующее обновление

Существует шаблон ARM для предоставления двух служб поиска Azure.

"resources": [
{
  "type": "Microsoft.Search/searchServices",
  "name": "[parameters('serviceName')]",
  "apiVersion": "[parameters('serviceApiVersion')]",
  "location": "[parameters('location')]",
  "properties": {
    "sku": {
      "name": "[parameters('sku')]"
    },
    "replicaCount": 1,
    "partitionCount": 1,
    "hostingMode": "[parameters('hostingMode')]"
  }
},
{
  "type": "Microsoft.Search/searchServices",
  "name": "[concat(parameters('serviceName'), 'secondary')]",
  "apiVersion": "[parameters('serviceApiVersion')]",
  "location": "[parameters('location')]",
  "properties": {
    "sku": {
      "name": "[parameters('sku')]"
    },
    "replicaCount": 1,
    "partitionCount": 1,
    "hostingMode": "[parameters('hostingMode')]"
  }
}]

Развертывание шаблона ARM обеспечивает одну службу поиска и отказывает другую с ответом:

{
  "error": {
    "code": "Unknown",
    "message": "There was a conflicting update. No change was made to the resource from this request. RequestId: b65a51b5-cd87-4dc5-82d9-9041ddd1c2dc",
    "target": null,
    "details": null
  }
}

Кто-нибудь сталкивается с такой проблемой?

1 ответ

Решение

Возможно, поисковые службы не могут быть одновременно предоставлены в одной и той же группе ресурсов. Попробуйте добавить свойство "зависящий от" во вторую службу поиска.

Проблема

Поисковые службы не полагаются ни на что другое, поэтому dependsOnсобственность не потребуется.
Я думаю, проблема в том, что у вас неверный синтаксис руки.

Я не знаю, какой apiVersion вы используете, но я не могу найти ни одного с таким же синтаксисом... (он больше всего похож на 2015-02-28, но hostingMode поле не допускается).

Решение

Либо используйте apiVersion 28.02.2015 без hostingmodeили (если вам нужно это поле) используйте более новую версию apiVersion, где "sku" выводится за пределы "свойств". Следующее работает для меня!

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
  {
    "type": "Microsoft.Search/searchServices",
    "name": "parameters('serviceName')",
    "apiVersion": "2015-08-19",
    "location": "parameters('location')",
    "properties": {
      "replicaCount": 1,
      "partitionCount": 1,
      "hostingMode": "default"
    },
    "sku": {
      "name": "basic"
    }
  },
  {
    "type": "Microsoft.Search/searchServices",
    "name": "[concat(parameters('serviceName'), 'secondary')]"
    "apiVersion": "2015-08-19",
    "location": "parameters('location')",
    "properties": {
      "replicaCount": 1,
      "partitionCount": 1,
      "hostingMode": "default"
    },
    "sku": {
      "name": "basic"
    }
  }]
}

Другие вопросы по тегам