Вот мои мнения об использовании обоих. Я ни в коем случае не говорю, что одно лучше другого. У них обоих есть свои плюсы и минусы.
Azure CLI - это кроссплатформенный инструмент командной строки для управления Azure ресурсами, который может работать в Windows, Ma c и Linux. Это также означает, что он может работать на Windows PowerShell. Он более гибкий, чем Azure PowerShell, поскольку является бинарным и может работать внутри любой оболочки ОС по умолчанию.
Есть ли какие-либо последствия для запуска команды CLI в Power-Shell?
Обновление может быть немного болезненным. Если вы хотите обновить его на Windows, вам необходимо переустановить MSI с инструкциями из Установить Azure CLI на Windows. Обновление проще на других платформах, и мне хочется использовать только Azure PowerShell на Windows PowerShell. Обходной путь - использовать WSL на Windows, тогда вы можете запустить Azure CLI на Linux внутри Windows машины. Вы можете установить WSL в Windows Подсистема для Linux Руководство по установке для Windows 10 . Я считаю, что обновлять пакет azure-cli
гораздо проще на Linux, используя apt-get
, чем эквивалент Windows. Вы можете взглянуть на Install Azure CLI с apt о том, как установить пакет Azure CLI на Linux.
Другое отличие состоит в том, что вам нужно объединить несколько команд с помощью Azure CLI, например az group list
против Get-AzResourceGroup
из Azure PowerShell. Вы также не можете запустить Get-Help
с Azure командами CLI, как вы делаете с Azure PowerShell, что для меня очень важно, так как я считаю, что система помощи PowerShell очень полезна отображение подробной информации о командлетах PowerShell. Справочная информация по Azure CLI находится с az --help
, но не такая полная, как Get-Help
.
Завершение табуляции также не работает в Azure CLI при использовании Windows PowerShell. Это также делает ввод текста немного болезненным, еще одна причина, по которой я использую WSL внутри Windows. Вы можете взглянуть на другие варианты этой поддержки автозаполнения в Windows командной строке GitHub.
Azure PowerShell - это набор командлетов PowerShell для управления Azure ресурсами из командной строки, и только работает в Windows PowerShell и PowerShell Core. Это также означает, что если другая ОС, такая как Ma c или Linux, работает под управлением PowerShell Core, то она также может запускать Azure PowerShell.
Я пробовал только некоторые команды basi c, и все они работают, кроме команд фильтра | найти только работы на CLI и | Select работает только в Power-Shell.
Select-Object
или сокращение Select
- это командлеты PowerShell, поэтому он работает только с объектами PowerShell. find
может искать строку или текстовый файл. Кроме того, если вы ищете данные из Azure CLI, вы должны использовать параметр --query
вместо find
, поскольку find
ограничен поиском строк внутри текст. Azure CLI использует язык запросов JMESPath для поиска данных в полученном вами выводе JSON. Если вы знакомы с этим языком запросов, то поиск данных с использованием Azure CLI не должен быть слишком большой проблемой. Кроме того, вы также можете использовать Azure команды CLI внутри скриптов PowerShell, но не наоборот.
Сводка
Если вы работаете с несколькими платформами или хотите писать скрипты для других, использующих разные платформы, использование Azure CLI - хороший выбор. Однако, если вы в основном работаете с Windows системами и работаете с другими, кто делает то же самое, то использование Azure PowerShell - хорошая идея. Если вам нравится я и вам приходится использовать разные платформы, то установка обеих - хорошая идея. Если вы по-прежнему хотите использовать Azure PowerShell на разных платформах ОС, тогда вам нужно PowerShell Core.
Обновление
Как @ AimusSage полезно указать в комментариях PowerShell 7. 0 был недавно выпущен, заменив имя PowerShell Core или PowerShell 6.x . Вы можете прочитать больше на Объявление о PowerShell 7.0 .