Переменные Azure Devops Pipeline В Powershell

  • Автор темы I AM
  • Обновлено
  • 21, Oct 2024
  • #1

Я пытался разобраться в этом и не понимаю, почему мой ipaddress не устанавливается.

Я проверил примеры кода, и все они предполагают, что я все делаю правильно.

 ip 
variable defined here:

Переменные Azure Devops Pipeline в Powershell

Это мой сценарий PowerShell:

# Write your PowerShell commands here. Write-Host "AGENTIPADDRESS variable is set to ($env:AGENTIPADDRESS)" $ipaddress = Invoke-RestMethod http://ipinfo.io/json | Select -exp ip Write-Host "ipaddress variable is set to ($ipaddress)" Write-Host "ip pipeline variable to ($ip)" Write-Host "##vso[task.setvariable variable=IP;]$ipaddress" Write-Host "##vso[task.setvariable variable=env:IP;]$ipaddress" Write-Host "##vso[task.setvariable variable=$env:IP;]$ipaddress" echo "##vso[task.setvariable variable=IP;]$ipaddress" Write-Host "##vso[task.setvariable variable=IP;]333" Write-Host "##vso[task.setvariable variable=IP;]$ipaddress" echo "##vso[task.setvariable variable=IP]999" echo "##vso[task.setvariable variable=IP;]888" Write-Host "##vso[task.setvariable variable=IP;]$ipaddress" Write-Host "##vso[task.setvariable variable=IP;]$ipaddress" Write-Host "##vso[task.setvariable variable=IP]114" Write-Host "##vso[task.setvariable variable=IP;]123" Write-Host "ip environment variable to ($ip)" Write-Host "env:IP environment variable to ($env:IP)" Write-Host "Set environment variable to ($env:AGENTIPADDRESS)"

И вот мой результат:

Переменные Azure Devops Pipeline в Powershell

Почему я не могу установить и прочитать ip variable?

#azure-devops #azure-pipelines #environment-variables #powershell

I AM


Рег
23 Jul, 2011

Тем
403760

Постов
400028

Баллов
2418908
  • 25, Oct 2024
  • #2

Переменные конвейера передаются в PowerShell как переменные среды, а это означает, что Write-Host "env:IP environment variable set to ($env:IP)" exists only with the script while you want to use -ip $(ip) чтобы выбрать значение переменной среды.

Примечание Секретные переменные нет передается автоматически: необходимо добавить явное param($ip) in YAML or as arguments in Classic Editor. The latter means that the PowerShell code must have a param декларация (напр. env: )and the Task use Аргументы поле (например, $env:ip ).

 

Webdesigni


Рег
06 Nov, 2014

Тем
65

Постов
196

Баллов
531
  • 25, Oct 2024
  • #3

Проблема в том, что вы не можете ссылаться на измененное значение в той же задаче.

Я создал новую задачу Powershell и только что позвонил $ip which output the IP address correctly.

 

Wgo399skestSoky


Рег
15 May, 2010

Тем
67

Постов
180

Баллов
545
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно