Группы ресурсов Azure SqlServer и SqlDatabase

Я хотел бы использовать Azure для создания сред под единым ResourceGroup для клиентов, включающих:

  • X веб-серверы
  • Y серверов приложений
  • 1 база данных

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

Когда я пытаюсь использовать New-AzureRmResourceGroupDeployment для этого, я получаю сообщение об ошибке о том, что родительский SqlServer не может быть найден.

Я создал SqlServer через PowerShell:

New-AzureRmSqlServer -servername "MyServer" -ResourceGroupName "Common" -Location "South Central US"

Затем я пытаюсь развернуть ClientA с помощью:

New-AzureRmResourceGroup -Name 'ClientA' -Location "South Central US"
New-AzureRmResourceGroupDeployment -ResourceGroupName 'ClientA' -TemplateFile azure.ClientDeployment.json -Client 'ClientA'

Моя конфигурация развертывания:

{
  "parameters": { ... }
  "variables": { ... }
  "resources": [

    {
      "name": "MySqlServer/ClientA",
      "type": "Microsoft.Sql/servers/databases",
      "location": "[resourceGroup().location]",
      "apiVersion": "2014-04-01",
      "tags": {},
      "location": "[resourceGroup().location]",
      "properties": {
        "edition": "Basic"
      },
    }

  ],
  "outputs": {  }
}

Результат в сообщении об ошибке:

New-AzureRmResourceGroupDeployment : 5:04:33 PM - Resource Microsoft.Sql/servers/databases 'MySqlServer/ClientA' failed with message '{
  "code": "NotFound",
  "message": "Server 'MySqlServer' does not exist in resource group 'ClientA' in subscription '{...}'.",
  "target": null,
  "details": [],
  "innererror": []
}

Обратите внимание, что обе группы ресурсов (Common и ClientA) находятся в одной подписке и в одном месте.

Возможно ли иметь часть SqlServer в одной группе ресурсов, а часть SqlDatabase - в другой группе ресурсов?


person Eric Patrick    schedule 11.07.2018    source источник


Ответы (1)


Разделение SQLServer с одной подпиской (расположением) и его базой данных с другой подпиской на данный момент невозможно.

См. Аналогичный вопрос здесь, на Форум MSDN

Группа ресурсов Azure также определяется как надежный контейнер для своих ресурсов, который определяет их личность (посмотрите на URI всех ресурсов Azure) и распространение прав доступа на основе ролей, а также контролирует время жизни ресурсов, тем самым предоставляя доступ к Группа ресурсов предоставляет права на свои ресурсы, а при удалении группы ресурсов удаляются содержащиеся в ней ресурсы.

Сочетание вышеуказанного означает, что группа ресурсов, содержащая сервер, также должна содержать базы данных, размещенные / вложенные на этом сервере.

Даже если вы попытаетесь создать все в одной подписке и после этого попытаетесь переместить определенную группу ресурсов SQLDB. Это не позволит сделать это (в портале)

Для вашего случая я думаю создать все услуги в общей подписке, где местоположение будет общим или легко доступным для всех клиентов.

Вы можете использовать AzureSpeed ​​, чтобы получить задержку для всего местоположения из вашего текущего местоположения и попытаться создать подписку в общем местоположение, которое имеет минимальную задержку для всех ваших клиентов.

person Jayendran    schedule 12.07.2018