Azure CLI в Python - PullRequest
       17

Azure CLI в Python

0 голосов
/ 27 октября 2019

Я запускаю некоторые команды Azure CLI из программы на Python.

process = subprocess.Popen('powershell.exe', stdin=subprocess.PIPE, stdout=subprocess.PIPE)

command_list = "Connect-AzAccount \n" + "az keyvault secret show --vault-name " + vault_name + " --name " + secret_name
out, err = process.communicate(command_list.encode('utf-8'))

Возможно ли из этого узнать, что-то пошло не так? как пользователь не вошел в систему или хранилище не существует? Кажется, эти ошибки выводятся на терминал, но я бы хотел перехватить их в моей программе.

1 Ответ

0 голосов
/ 27 октября 2019

Вы на самом деле используете смесь CLI и модуля Azure PowerShell.

Я проверил на своей машине, думая, что это не должно иметь значения, но на самом деле это так. Если вы вошли в систему с помощью PowerShell, но выполнили команду с помощью az.exe, вы получите:

Please run 'az login' to setup account.

... именно то, что вам нужно сделать, чтобы использовать Az. Так что у вас есть выбор. Вы можете использовать только PowerShell (модуль Az) и заменить az keyvault secret show --vault-name xxxx на Get-AzKeyVaultSecret -VaultName xxxx, только az.exe, заменив Connect-AzAccount на az login, или вы можете использовать оба, но вам нужно будет войти в оба. Моя рекомендация, так как вы используете каналы для межпроцессного взаимодействия, будет использовать только az.exe. Но это действительно зависит от того, чего вы хотите достичь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...