Сохранение вывода в переменную не работает в задаче DevOps Azure-CLI - PullRequest
1 голос
/ 23 мая 2019

Попытка сохранить вывод рекомендации Azure Advisor в переменную, чтобы я мог перейти к следующей задаче.

Однако, независимо от того, какой синтаксис я пробую, и, поверьте мне, я пробовал все возможные комбинации,переменная не сохраняется.Интересно, что они работают в облачной оболочке (bash) для Eg

rgName="$(az group list --query "[?tags.Test=='yes'].name" --output tsv)" 
az group show -n $rgName

. Это прекрасно работает в облачной оболочке.Но не в задании DevOps azurecli.Я также сослался на несколько примеров, приведенных в самом переполнении стека, но ни один из них не работает.Использование задания версии 1. *

rgName' is not recognised as an internal or external command,

Может ли кто-нибудь привести рабочий пример для задания DevOps?

Примечание. Кстати, единственная причина, по которой я использую cli, заключается в том, что я не могу найти модуль Advisor RM иМодуль Az не загружается правильно в версии задачи 4. *

1 Ответ

0 голосов
/ 29 мая 2019

Как упоминалось выше Шайки, task.setvariable может помочь с установкой переменной из скрипта. То же самое было подробно описано в этом документе. В двух словах, вы должны сделать это:

rgName=$(az group list --query "[?tags.Test=='yes'].name" -o tsv | tr '\n' ' ')
echo "##vso[task.setvariable variable=RESULT]$rgName"

task.setvariable является командой ведения журнала и не обновляет переменные среды, но делает новую переменную доступной для последующих шагов в рамках того же задания. Обратите внимание, что результаты разделяются CRLF, а не пробелами, и, следовательно, усечение tr '\n' ' '. Теперь в последующих задачах, где вам нужна переменная, вы можете использовать ее следующим образом:

echo "Result: $(RESULT)"

Обратитесь к этому блогу, чтобы получить подробное описание. Надеюсь, это поможет!

...