как обеспечить уникальные имена в шаблоне руки? - PullRequest
0 голосов
/ 14 февраля 2019

Как мы можем гарантировать, что ресурсы подключения имеют уникальные имена?

У нас есть около 100 логических приложений, которые имеют подключения к таким вещам, как хранилище sftp и blob.Примером может быть:

"azureblob_1_Connection_Name": {
  "value": "azureblob-1"
},
"azureblob_1_Connection_DisplayName": {
  "value": "my-blob-con"
},
"azureblob_1_accountName": {
  "value": "blobdocumentstor"
}

Из-за отсутствия автоматизации другое логическое приложение может использовать то же имя подключения: azureblob-1, но оно может иметь разные свойства, например accountName может отличаться:

"azureblob_1_accountName": {
  "value": "differentdocstor"
}

При развертывании логического приложения с тем же именем соединения оно заменит существующее соединение!

Как мы можем гарантировать, что соединения не будут перезаписаны?

Можно ли принудительно установить в шаблоне руки, что определенное значение будет уникальным?

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Используйте некоторый префикс с именем ресурса и функцией uniqueString в шаблоне arm для генерации уникального имени.

Пример:

"functionApp_appServicePlanName": {
  "defaultValue": "[concat('assamplefnappsvc',uniqueString(resourceGroup().id))]",
  "metadata": {
    "description": "Name of the app service plan to host function app."
  },
  "type": "string"
}

Приведенное выше значение по умолчанию для ресурсабудет автоматически сгенерирован.Вы также можете написать собственную логику для генерации уникальной строки и передавать ее из PowerShell / .NET везде, где вы развертываете свой шаблон.

0 голосов
/ 14 февраля 2019

вы можете использовать что-то вроде запуска шаблона временного плеча, передать его в шаблон и сгенерировать уникальное имя на основе этого.все функции шаблона руки являются детерминированными, поэтому вы всегда получаете один и тот же вывод, если пропускаете один и тот же ввод.Функция даты \ времени еще не реализована (afaik).До того, как это произойдет, вам нужно полагаться на внешний источник для генерации имен \ префиксов \ чего-либо для шаблона arm для генерации уникальных имен.

Но это приводит к проблеме, когда вы не можете обновить существующие вещи, если вы не знаете"seed" вы указали при первом запуске.

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

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