Получить учетные данные для развертывания веб-сайта в шаблоне ARM

У меня есть шаблон ARM, который создает, среди прочих ресурсов, веб-сайт, на котором размещается веб-задание, и задание, являющееся частью планировщика. Мне удалось настроить все с помощью шаблона ARM, кроме аутентификации.

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


person Brian Ball    schedule 18.11.2016    source источник


Ответы (1)


Я нашел ответ, который помог мне в этом; вы можете установить Uri запроса на list(resourceId('Microsoft.Web/sites/config', variables('webSiteName'), 'publishingcredentials'), '2016-08-01').properties.scmUri. Вам также нужно будет соединить остальную часть пути (например, /api/triggeredwebjobs/{webjobname}/run)

Uri, созданный приведенным выше кодом, включает в себя базовые учетные данные аутентификации, которые в какой-то момент анализируются, а имя пользователя и пароль удаляются из Uri, поэтому они не отображаются на портале Azure, а для аутентификации установлено значение «Базовая». , а для учетных данных устанавливаются извлеченные значения.

Однако в конце моего Uri была добавлена ​​строка запроса для передачи параметров в веб-задание. В процессе развертывания строка запроса искажается (знак вопроса преобразуется в %3F, и если в значении аргументов есть экранированные символы, они не будут экранированы.

Мне удалось обойти это, объединив строки вместе, чтобы составить Uri (НЕ используя свойство scmUri), а затем установив свойство authentication, родственное свойству uri, чтобы оно выглядело следующим образом.

"authentication": { "type": "Basic", "username": "[list(resourceId('Microsoft.Web/sites/config', variables('webSiteName'), 'publishingcredentials'), '2016-08-01').properties.publishingUserName]", "password": "[list(resourceId('Microsoft.Web/sites/config', variables('webSiteName'), 'publishingcredentials'), '2016-08-01').properties.publishingPassword]" }

person Brian Ball    schedule 18.11.2016