Создайте пакет облачной службы Azure в сборке Visual Studio Team Services
У нас есть облачная служба Azure с веб-ролью и рабочей ролью. Мы хотели бы настроить непрерывную доставку в Visual Studio Team Services, автоматически отправляя сборку в Azure при регистрации исходного кода. (QA среда). Исходный код находится на Github. Лучше не проверять секреты Github, поэтому мы проверяем только файл.csdef, а не файл.cscfg.
Каков наилучший способ создать определение сборки в VSTS, которое будет брать файл.cscfg из другого места и создавать пакет облачной службы? Где хранить файл.cscfg и как настроить сборку?
2 ответа
Решение: в конечном итоге использование пользовательских сценариев PowerShell для замены значений конфигурации в .cscfg
файл с переменными VSTS. Сценарии конфигурации PowerShell выполняются для среды, определенной в конвейере управления выпусками. Примечание: переменные, определенные как секретные, должны быть переданы в качестве параметров в сценарий PowerShell, поскольку сценарий PowerShell не будет иметь доступа к этим параметрам с помощью $Env:
Мы используем Replace tokens
задача, которая доступна в VSTS
Вы также можете указать префикс и суффикс для замены строки.
Тогда в вашем ServiceConfiguration.Cloud.cscfg
, вы бы использовали определенный префикс и суффикс, чтобы указать, какую строку следует заменить. Значение будет взято из Variables
что вы определили в VSTS. Затем вы поместите имя переменной для этого параметра между префиксом и суффиксом.
Пример ServiceConfiguration.Cloud.cscfg
файл, который будет заменен Password
переменная.
<Setting name="SqlPassword" value="#{Password}#" />
Это может быть использовано для преобразования / замены любой строки в любом файле конфигурации. Следует отметить, что в некоторых файлах конфигурации схема проверяет значение определенного параметра.
Как в случае с ServiceConfiguration
"s Certificate
настройка в облачной службе. Значением должен быть действительный отпечаток сертификата (любая цифра 0-9 и / или буква AF, строчные и прописные). Схема конфигурации службы определила это, и сборка не удастся, если значение не соответствует требованию схемы.
Чтобы обойти это, у нас есть другая задача в нашей версии для замены сертификата. Префикс / суффикс для этого может быть что-то вроде abc
а также def
соответственно. Имя переменной будет 001
, К сожалению, это не так наглядно, потому что это должен быть действительный отпечаток сертификата.
<Certificate name="MainSSL" thumbprint="abc001def" thumbprintAlgorithm="sha1" />