Escolher a ferramenta de linha de comandos do Azure correta

Quando se trata de gerenciar o Azure, você tem muitas opções. Este artigo compara a linguagem da CLI do Azure e do Azure PowerShell e fornece uma comparação dos ambientes de shell nos quais eles são executados.

Azure CLI, Azure PowerShell e Azure Cloud Shell têm funcionalidade sobreposta. Cada um opera de forma diferente, e a linguagem às vezes é confundida com o ambiente. Use este guia para determinar qual é a ferramenta certa para você.

Qual é a vantagem de usar uma ferramenta de linha de comando do Azure?

O Azure é executado em automação. Cada ação que você realiza dentro do portal se traduz em algum lugar em código que está sendo executado para ler, criar, modificar ou excluir recursos.

Mover sua carga de trabalho para o Azure elimina parte da carga administrativa, mas não toda. À medida que sua taxa de adoção com o Azure aumenta, a sobrecarga também aumenta. Mesmo que você não precise se preocupar com o data center, ainda precisa corrigir e solucionar problemas de VMs do Azure, bancos de dados de failover e configurar redes virtuais.

Usando a automação existente que executa o Azure, as ferramentas de linha de comando reduzem essa sobrecarga.

O que são ferramentas de linha de comando do Azure?

As ferramentas de linha de comando do Azure automatizam operações de rotina, padronizam failovers de banco de dados e extraem dados que fornecem informações poderosas. As ferramentas de linha de comando não só oferecem a capacidade de dimensionar suas tarefas no Azure, mas também facilitam muito o compartilhamento. Compartilhar um script é muito mais fácil do que uma longa página wiki com capturas de tela demoradas.

Usar uma ferramenta de linha de comando do Azure nem sempre é necessário, mas é uma habilidade útil de se ter.

Azure CLI vs Azure PowerShell

A CLI do Azure e o Azure PowerShell são ferramentas de linha de comando que permitem criar e gerenciar recursos do Azure. Ambos são multiplataforma, instaláveis no Windows, macOS e Linux.

CLI do Azure

  • Interface de linha de comando multiplataforma, instalável no Windows, macOS, Linux
  • É executado no Windows PowerShell, Cmd ou Bash e outros shells Unix.

Azure PowerShell

  • Módulo PowerShell multiplataforma, executado em Windows, macOS, Linux
  • Requer o Windows PowerShell ou PowerShell

Diferentes ambientes de shell

Ambiente Shell CLI do Azure Azure PowerShell
Cmd Sim
Bash Sim
Windows PowerShell Sim Sim
PowerShell Sim Sim

Windows PowerShell, PowerShell, Cmd e Bash são ambientes de shell. O ambiente de shell não só determina quais as ferramentas que pode utilizar, como também altera a sua experiência de linha de comandos.

Por exemplo, para o caractere de continuação de linha, Bash usa a barra invertida \ enquanto o Windows PowerShell usa o backtick `. As diferenças no ambiente shell não alteram a forma como a CLI do Azure e o Azure PowerShell funcionam. No entanto, alteram a sua experiência de linha de comandos.

A CLI do Azure tem um instalador que torna os comandos executáveis nos quatro ambientes shell.

O Azure PowerShell é um conjunto de cmdlets empacotados como um módulo do PowerShell chamado Az; não um executável. O Windows PowerShell ou PowerShell deve ser usado para instalar o Az módulo.

O Windows PowerShell é a shell de scripts padrão que vem pré-instalada com a maioria dos sistemas operativos do Windows. O PowerShell é uma instalação autónoma que utiliza o .NET Core como runtime, ao permitir que seja instalado no macOS, Linux e Windows.

Pontos principais:

  • O AzureRM é um módulo do PowerShell que ainda é referenciado para a administração do Azure com o PowerShell. No entanto, ele foi substituído pelo Azure PowerShell e tem uma data de aposentadoria oficial de 29 de fevereiro de 2024.

Se você estiver usando o AzureRM, poderá migrar o Azure PowerShell do AzureRM para Az.

E o Azure Cloud Shell?

O Azure Cloud Shell é um ambiente de shell hospedado que é executado em um contêiner do Ubuntu.

O Cloud Shell fornece dois ambientes de shell: Bash (com a CLI do Azure pré-instalada) e PowerShell (com o Azure PowerShell pré-instalado). Uma lista suspensa na parte superior da janela do Cloud Shell permite alternar facilmente entre os dois ambientes.

O Cloud Shell é acessível em um navegador da Web e tem integrações para o Terminal do Windows e o Visual Studio Code.

Azure CloudShell Bash and PowerShell environments

Nota

O Azure Cloud Shell nem sempre reflete imediatamente as versões mais recentes do Azure PowerShell e da CLI do Azure, pois o cronograma de publicação para todas as três ferramentas é diferente. No entanto, geralmente pensa-se que o Azure Cloud Shell sempre contém as versões mais recentes de ambas as ferramentas.

Qual ferramenta de linha de comando do Azure é ideal para você?

Ao escolher a ferramenta certa, considere sua experiência passada e o ambiente de trabalho atual.

A sintaxe da CLI do Azure é semelhante à do script Bash. Se você trabalha principalmente com sistemas Linux, a CLI do Azure parece mais natural.

O Azure PowerShell é um módulo do PowerShell. Se você trabalha principalmente com sistemas Windows, o Azure PowerShell é uma opção natural. Os comandos seguem um esquema de nomenclatura verbo-substantivo e os dados são retornados como objetos.

Escolha a ferramenta que utiliza a sua experiência e encurta a sua curva de aprendizagem. Aproveite o aprendizado da Microsoft para se tornar proficiente no gerenciamento do Azure na linha de comando.

Dito isto, ter a mente aberta só irá melhorar as suas capacidades. Use uma ferramenta diferente quando fizer sentido.

Pontos principais:

  • A paridade de recursos para os serviços do Azure nem sempre existe entre a CLI do Azure e o Azure PowerShell.

CLI do Azure vs Azure PowerShell: comparação de comandos lado a lado

Comandos de Início, Subscrição e Localização:

Comando CLI do Azure Azure PowerShell
Entrar com o navegador da Web az login Connect-AzAccount
Obter subscrições disponíveis Lista de contas AZ Get-AzSubscription
Definir Subscrição az account set –-subscription <SubscriptionId> Set-AzContext -Subscription <SubscriptionID>
Listar locais do Azure Localizações da lista de contas AZ Get-AzLocalização

Encontre versões, obtenha ajuda e veja a ajuda do comando:

Comando CLI do Azure Azure PowerShell
Localizar versão az --versão Get-InstalledModule -Name Az
Obter Ajuda az --ajuda Get-Help
Ver Ajuda do Comando az vm --ajuda Get-Help -Name New-AzVM

Crie um grupo de recursos, VM e conta de armazenamento:

Comando CLI do Azure Azure PowerShell
Criar Grupo de Recursos az group create --name <ResourceGroupName> --location eastus New-AzResourceGroup -Name <ResourceGroupName> -Localização eastus
Criar Máquina Virtual do Azure az vm create --resource-group myResourceGroup --name myVM --image UbuntuLTS --admin-username azureuser --admin-password 'Senha>'< New-AzVM -ResourceGroupName ResourceGroupName <> -Name myVM -Image UbuntuLTS -Credential (Get-Credential)
Criar uma Conta de Armazenamento do Azure az storage account create --name <StorageAccountName --resource-group <ResourceGroupName>> --location eastus --sku Standard_LRS --kind StorageV2 New-AzStorageAccount -Name <StorageAccountName -ResourceGroupName ResourceGroupName -Location eastus -SkuName> <> Standard_LRS -Kind StorageV2

Gerenciar Máquinas Virtuais do Azure:

Comando CLI do Azure Azure PowerShell
Listar VM az vm list Get-AzVM
Reiniciar VM az vm restart --name myVM --resource-group <ResourceGroupName> Restart-AzVM -Name myVM -ResourceGroupName ResourceGroupName <>
Parar VM az vm stop --name myVM --resource-group <ResourceGroupName> Stop-AzVM -Name myVM -ResourceGroupName ResourceGroupName <>
Parar & Desalocar VM az vm deallocate --name myVM --resource-group <ResourceGroupName> Stop-AzVM -Name myVM -ResourceGroupName ResourceGroupName <>
Iniciar VM az vm start --name myVM --resource-group <ResourceGroupName> Start-AzVM -Name myVM -ResourceGroupName ResourceGroupName <>
Excluir VM az vm delete --name myVM --resource-group <ResourceGroupName> Remove-AzVM -Name myVM -ResourceGroupName ResourceGroupName <>

Selecione Propriedades e Alterar formatos de saída:

Comando CLI do Azure Azure PowerShell
Mostrar todas as informações da subscrição lista de contas az --todos Get-AzSubscription | Select-Object -Property *
Saída como uma tabela az account list -o tabela Get-AzSubscription | Formatar-Tabela
Saída como JSON az account show Get-AzSubscription | ConvertTo-Json

Pontos principais:

  • O padrão da CLI do Azure é a saída de uma cadeia de caracteres JSON. Outras opções de formato podem ser encontradas nos formatos de saída para comandos da CLI do Azure.
  • O Azure PowerShell assume como padrão objetos de saída. Para saber mais sobre formatação no PowerShell, leia Usando comandos de formato para alterar o modo de exibição de saída.

Próximos passos

CLI do Azure:

Azure PowerShell: