#azure-devops
#azure-devops
Вопрос:
Есть ли способ получить прямой доступ к переменным среды, определенным в моем агенте? Я хочу использовать переменные среды от моего агента внутри задачи конвейера.
Мой текущий обходной путь выглядит следующим образом:
Write-Host "##vso[task.setvariable variable=SQL_SERVER]$($env:SQL_SERVER)"
Write-Host "##vso[task.setvariable variable=SQL_MODEL]$($env:SQL_MODEL)"
Который я добавил во встроенную задачу PowerShell перед $(SQL_SERVER)
использованием переменной в моем конвейере.
Ответ №1:
Проверьте документацию: https://learn.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devopsamp;tabs=yaml,batch#environment-variables
Переменные среды зависят от используемой операционной системы. Они вводятся в конвейер способами, зависящими от платформы. Формат соответствует способу форматирования переменных среды для вашей конкретной платформы сценариев.
В системах UNIX (macOS и Linux) переменные среды имеют формат
$NAME
. В Windows формат предназначен%NAME%
для пакетной обработки и$env:NAME
в PowerShell.Системные и пользовательские переменные также вводятся в качестве переменных среды для вашей платформы. Когда переменные превращаются в переменные среды, имена переменных становятся прописными, а точки превращаются в символы подчеркивания. Например, имя переменной
any.variable
становится именем переменной$ANY_VARIABLE
.
Комментарии:
1. Спасибо за ваш ответ. Я пытаюсь
$(sql.server)
,$(%SQL_SERVER%)
,$($SQL_SERVER)
,%SQL_SERVER%
,$SQL_SERVER
,$env:SQL_SERVER
в моем конвейере. Ни один из них не заменяется значением моей переменной среды. Не могли бы вы также дать интерпретацию своему ответу?2. Как вы определили переменную? Как вы хотели использовать эту переменную? И какую платформу вы использовали?
3. Windows, я добавляю переменную к системным переменным
System > Environment Variables > New
. Таким образом, локально он доступен$env:SQL_SERVER
. Я хочу использовать эту переменную, чтобы передать ее непосредственно в задачу конвейера, без обхода, как я сообщаю в своем вопросе.4. Пожалуйста, перейдите в свой пул агентов и проверьте возможности используемого вами агента, чтобы проверить, видите ли вы
sql.server
возможности. Если вы не видите эту возможность, попробуйте перезапустить службу агента, тогда вы сможете распечатать переменную с помощьюWrite-Host "$(sql.server)"
.5. Вы имеете в виду, что ваша проблема решена? Если мой ответ поможет вам, вы можете принять его как ответ , это может быть полезно для других участников сообщества, читающих эту тему.