Использование пустых / необязательных параметров в шаблоне ARM Azure - PullRequest
0 голосов
/ 19 октября 2018

У меня проблемы с настройкой шаблона ARM для веб-приложений Azure, так как я не могу добавить параметры ConnectionString, где он устанавливает значения, если параметры заданы, но оставить пустым (по умолчанию), если параметры не заданы.

Вот как это выглядит в файле template.json:

"connectionStrings": [
        {
          "name": "[parameters('connString').connName)]",
          "connectionString": "[parameters('connString').string]",
          "type": "[parameters('connString').connType]"
        }
      ],

И в файле settings.json:

"connString": {
        "value": {
            "connName": "",
            "string": "",
            "connType": ""
        }
    },

При запуске развертывания свыше это терпит неудачу на "Имя параметра не может быть пустым" Я попытался использовать функцию равенства, чтобы установить значение как пустое, если параметр пуст, но установить параметр, если параметр заполнен, однако ему не нравится пустоезначение.

"name": "[if(equals(parameters('connString').connName,''),'',parameters('connString').connName)]"

Также была предпринята попытка пустой функции:

 "name": "[not(empty(parameters('connString').connName))]"

Однако при этом возвращается «False», если он пуст, и «True», если параметр установлен (как задумано)

Развертывание работает нормально, если я устанавливаю фиктивные значения в качестве параметров, можно ли установить функцию или что-то подобное, чтобы, если параметр был пустым, он использовал любое отправленное значение, как если бы в шаблоне отсутствовал раздел connectionStrings?Эти параметры являются необязательными, но похоже, что они находятся в самом файле template.json, ожидая значения.

Cheers

EDIT Собираюсь опубликовать, как выглядят мои конечные шаблоны на случай, если кому-то еще понадобится помощь.

Файл шаблона

Переменные

"variables": {
"empty": []
},

Ресурсы

"connectionStrings": "[if(empty(parameters('connString')), variables('empty'), array(parameters('connString')))]",

Файл параметров

При настройке строки подключения

 "connString": {
        "value": [{
            "name": "test",
            "connectionString": "ufgndjkngsdgjkn",
            "type": "Custom"
        }]
    },

Если не нужно устанавливать строку подключения

"connString": {
    "value": [
    ]
},

Ответы [ 2 ]

0 голосов
/ 21 января 2019

вы можете попробовать:

параметры:

"connString": [{
    "value": {
        "name": null,
        "connectionString": null,
        "type": "Custom"
    }
}],

переменные:

шаблон:

"connectionStrings": "[if(empty(parameters('connString')[0].value.name), json('null'), parameters('connString'))]"
0 голосов
/ 19 октября 2018

Вы должны просто сделать это:

параметры:

"connString": {
    "value": {}
},

переменные:

"empty": [],

шаблон:

"connectionStrings": "[if(empty(parameters('connString')), variables('empty'), array(parameters('connString')))]"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...