Escape Dollar $ sign в переменной шаблона Azure ARM

У меня есть шаблон ARM для развертывания веб-приложения в Azure. У меня также есть конфигурация AppSettings в WebApp (которая используется для отправки электронных писем) «EmailPassword», которая будет развернута вместе с шаблоном ARM.

Фактическое значение переменной «EmailPassword» - «Test $ am123» в шаблоне ARM.

Но когда я выполняю шаблон ARM во время развертывания, значение сохраняется как «Test123» в AppSettings созданного WebApp.

Надеюсь, это происходит из-за знака $ (доллар) в переменной.

Как избежать знака доллара в переменных шаблона ARM

Обновление: с помощью 4c74356b41 я обнаружил, что проблема не в шаблоне ARM и его Parameters.Json. Вместо этого я использую VSO Развертывание и попытка передать значения параметрам из переменных среды. Я переопределил Parameters.json с помощью ввода «Переопределить параметры шаблона» в VSO.

Проблема связана с VSO, и он удаляет символы «$ am» при передаче значений в развертывание ARM.


person samjayander    schedule 15.11.2016    source источник
comment
Итак, "Test@am123" превращается в _2 _? ... какой $ знак доллара?   -  person Hackerman    schedule 15.11.2016
comment
Извините. Отредактировал исходное сообщение. Значение - Test $ am123, а не Test @ am123.   -  person samjayander    schedule 15.11.2016


Ответы (1)


Я думаю, что экранирование осуществляется с помощью символа \.

обновление: для меня $ не нужно убегать.

person 4c74356b41    schedule 15.11.2016
comment
Здесь это маловероятно. - person Robert Harvey; 15.11.2016
comment
почему бы и нет, в моем шаблоне так работает ... Я не пробовал убегать от $ thou - person 4c74356b41; 15.11.2016
comment
В шаблоне ARM? - person Robert Harvey; 15.11.2016
comment
Поскольку развертывание должно выполняться некоторыми людьми из службы поддержки, я не могу просить людей избегать значений при вводе исходного пароля. Есть ли способ получить исходное значение при чтении переменной? - person samjayander; 15.11.2016
comment
да, Роберт, в шаблоне ARM. но я только что протестировал, и мне не нужно экранировать $ ... @samjayander, о котором я не знаю. - person 4c74356b41; 15.11.2016
comment
да. Но использование символа \ escape в значении, как Test \ $ am123, приводит к Test \ 123. Кстати, я использую VSO Build и переопределяю переменные шаблона ARM, используя параметры переопределения шаблона, как показано на последнем шаге это руководство - person samjayander; 15.11.2016
comment
да, вам нужно выйти \ с помощью\\, которое удерживает - person 4c74356b41; 15.11.2016
comment
Мне нужен $ am в середине, в котором отсутствует последний раздел AppSettings. - person samjayander; 15.11.2016
comment
так в чем проблема? для меня Test $ am123 не искажается в шаблоне - person 4c74356b41; 15.11.2016
comment
Фактическая проблема заключается в том, что значение для AppSettings в ARM Template Test $ am123 заполняется как Test123 в WebApp. - person samjayander; 15.11.2016
comment
Давайте продолжим это обсуждение в чате. - person 4c74356b41; 15.11.2016
comment
Можете ли вы поговорить со мной, я только что проверил именно это, и он отлично работает - person 4c74356b41; 15.11.2016