У меня есть файл проекта YAML, который содержит конфигурацию моего инструмента тестирования данных CAT.
Часть этой конфигурации включает строки подключения к отчетам Power BI, которые содержат тестируемые мной данные. Я использую переменные для многих частей строк подключения, включая пароль пользователя, например:
Я настроил пароли в библиотеке Azure DevOps для классического конвейера, и все переменные заменяются правильно, за исключением переменной пароля. Сообщение об ошибке указывает, что агент не может его найти.
Код конвейера:
Сообщение об ошибке:
Варибалес установил:
Я не уверен, что может быть причиной проблемы с заменой переменной пароля JUST.
Может ли кто-нибудь помочь мне устранить эту проблему?
Под «файлом проекта YAML» вы подразумеваете файл проекта CAT, верно? Тогда не хватает одной информации: является ли ваш конвейер Azure DevOps классическим конвейером (вы определяете его в графическом интерфейсе) или это YAML? Можете ли вы поделиться шагом, который приводит к ошибке? (либо скриншот, либо YAML).
Вы не предоставили минимальный воспроизводимый образец определения конвейера YAML; трудно понять, какая задача конвейера вызвала ошибку, как можно ожидать, что конвейер прочитает переменные среды (возможно), а затем заменит Password
в ConnectionString значением переменной среды %PBIServicePrincipalPassword%
.
На снимке экрана вы выделили переменную в группе переменных с именем PBIServicePrincipalPassword_DP
, которое отличается от переменной PBIServicePrincipalPassword
. Пожалуйста, дважды проверьте, определили ли вы значение пароля для правильной переменной и использовали его в строке подключения.
Привет, спасибо, что заметили это, я исправил принтскрин и добавил больше изображений, чтобы прояснить мою проблему. Надеюсь, теперь это более понятно.
Спасибо за обновление. Могу ли я узнать, работал ли конвейер раньше, скажем, в вашем классическом конвейере? Протестировали ли вы предложение Кевина выше о добавлении свойства env для вашей задачи pwsh
?
В зависимости от содержимого строк подключения и сообщения об ошибке строка подключения считывает переменные среды из конвейера, а переменная секретного пароля не читается.
Причиной проблемы может быть то, что секретные переменные по умолчанию не записываются в переменные среды конвейера.
Чтобы использовать секретную переменную в Azure Pipeline, вам необходимо явно сопоставить секретные переменные.
Например: вы можете добавить поле env
в определение задачи, чтобы сопоставить секретную переменную.
- task: PowerShell@2
inputs:
filePath: 'filename'
env:
PBIServicePrincipalPassword: $(PBIServicePrincipalPassword)
Для получения более подробной информации вы можете обратиться к документу: Установить секретные переменные
Привет, Кевин, ты был прав: возникла проблема с настройками секретных переменных. Спасибо"
Привет @HelenaNovakova, добро пожаловать в SO. Есть ли у вас возможность просмотреть ответы ниже, чтобы дважды проверить переменные среды? Если ответы вас не устраивают. Не могли бы вы поделиться YAML-определением конвейера со своим сценарием, если оно есть, и сообщить нам, на каком этапе возникла ошибка? Спасибо за обмен.