Выполнить команду Azure в powrershell без записи ошибки на консоль?

#azure #powershell #azure-devops #azure-pipelines

Вопрос:

Я использую сценарий powershell в конвейере и проблема, с которой я сталкиваюсь с этим запросом.

 $value = $(az appconfig kv show -n ThisisEnv --key thisisconfigkey) | ConvertFrom-Json
 

Что делает этот запрос, так это получает данные, связанные с ключом, если они существуют. Если этот ключ не существует, он выдает ошибку типа

 ERROR: Key 'abcdefg' with label 'None' does not exist.
 

Это работает так, как ожидалось. В конвейере, когда ключ не существует, в CLI выводится ошибка. Конвейер видит это как ошибку и показывает ее как сбой. Есть ли способ заставить это работать.

Есть ли способ остановить его печать на консоли. Любой оператор powershell, который поможет мне получить значение из команды azure, но также позволит мне получить его, не печатая ничего на консоли.

Ответ №1:

Вы можете попытаться перенаправить стандартную ошибку, используя 2> $null

 $value = $(az appconfig kv show -n ThisisEnv --key thisisconfigkey 2> $null) | ConvertFrom-Json
 

Это приведет к подавлению ошибки в консоли. Возможно, вам также захочется установить powerShellIgnoreLASTEXITCODE задачу внутри командной строки Azure, чтобы запуск конвейера не завершался сбоем, или в качестве обходного пути установите $LASTEXITCODE значение 0

Комментарии:

1. Я попробовал 2> $ null, он по-прежнему выводит ошибку на консоль.

2. По моей вине я неуместно разместил инструкцию. Пожалуйста, попробуйте еще раз — я отредактировал свой ответ.

3. Этот codesnippt помогает мне перестать показывать ошибку, но мой конвейер все еще видит ту же ошибку. Есть ли способ предотвратить это. Я больше не могу воспроизвести ее локально, но конвейер все тот же.