Как получить номер порта Azure Sql Server в ARM?

#azure #azure-sql-database #azure-resource-manager

#azure #azure-sql-база данных #azure-менеджер ресурсов #azure-sql-database #azure-resource-manager

Вопрос:

Я использую шаблон ARM для получения имени сервера Azure sql Server, но я ищу способ также получить порт (1433) вместо предоставления жестко заданного значения.

Мой код ARM:
[concat(reference(resourceId('Microsoft.SQL/servers/', parameters('database_server_name'))).fullyQualifiedDomainName,':1433')]

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

Ответ №1:

В диспетчере ресурсов Azure есть NO port number свойство для типа ресурса Microsoft.Sql/servers. Следовательно, нет никакого способа прочитать это из свойства SQL Server в шаблоне.

Ниже приведен Обозреватель ресурсов на портале Azure, в котором показаны все свойства для типа ресурса Microsoft.Sql/servers.

введите описание изображения здесь

Комментарии:

1. Спасибо за ваш ответ, я знаком с обозревателем ресурсов, и именно это вызвало мой вопрос.

2. Летом 2018 года я также считаю, что это так. (Не настраиваемое свойство.) Кажется, что он очень жестко закодирован на 1433. Да здравствует память о Sql Server 6.5 и 7.0!

Ответ №2:

Сделайте это так же, как ваш параметр database_server_name:

 [concat(reference(resourceId('Microsoft.SQL/servers/', parameters('database_server_name'))).fullyQualifiedDomainName,':', parameters('port_number'))]
  

Комментарии:

1. Извините, я не говорил, что я не указал какой-либо порт в моем шаблоне SQL. У меня нет ‘port_number’.

2. Вы можете добавить переменную или параметр в шаблон ARM, чтобы добавить номер порта.

Ответ №3:

На данный момент единственным номером порта, который был бы возвращен (если бы существовал такой поиск параметров) для Azure SQL DB, является порт 1433; это не отображается в API, как отметил ювчан.

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

Затем содержимое этого файла будет включать что-то вроде

 {
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
... 
    "sqlazure_port_number": {
        "value": "1433"
    }
...
 }
}