Escolher a ferramenta de linha de comando do Azure correta

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

A CLI do Azure, o Azure PowerShell e o Azure Cloud Shell têm funcionalidade sobreposta. Cada um opera de maneira 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 na automação. Cada ação que você executa dentro do portal é convertida em algum lugar para que o código seja executado para ler, criar, modificar ou excluir recursos.

Mover sua carga de trabalho para o Azure remove parte da carga administrativa, mas não toda. A sobrecarga aumentará com o aumento da sua taxa de adoção do Azure. Mesmo que você não precise se preocupar com o data center, você ainda precisa aplicar patch 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 as 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 efetuam pull de informações que fornecem insights avançados. Além de oferecerem a capacidade de escalar suas tarefas no Azure, as ferramentas de linha de comando facilitam o compartilhamento. Compartilhar um script é muito mais fácil do que uma página wiki extensa com capturas de tela demoradas.

Nem sempre é necessário usar uma ferramenta de linha de comando do Azure, mas saber como usar essas ferramentas é muito útil.

CLI do Azure 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, no macOS e no Linux.

CLI do Azure

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

PowerShell do Azure

  • Módulo do PowerShell multiplataforma, executado no Windows, macOS, Linux
  • Requer Windows PowerShell ou PowerShell

Ambientes de shell diferentes

Ambiente de shell CLI do Azure Azure PowerShell
Cmd Sim
Bash Sim
Usando o Windows PowerShell Sim Sim
PowerShell Sim Sim

Windows PowerShell, PowerShell, Cmd e Bash são ambientes de shell. Seu ambiente de shell não apenas determina quais ferramentas você pode usar, mas também altera sua experiência de linha de comando.

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

A CLI do Azure tem um instalador que torna seus comandos executáveis em todos os quatro ambientes de 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 o PowerShell devem ser usados para instalar o módulo Az.

O Windows PowerShell é o shell de script padrão que vem pré-instalado com a maioria dos sistemas operacionais Windows. O PowerShell é uma instalação autônoma que usa o .NET Core como seu runtime, permitindo que ele seja instalado no macOS, Linux e Windows.

Pontos principais:

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

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

E quanto ao 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: o Bash (com a CLI do Azure pré-instalada) e o PowerShell (com o Azure PowerShell pré-instalado). Uma lista suspensa na parte superior da janela do Cloud Shell permite que você alterne 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

Observação

O Azure Cloud Shell pode nem sempre refletir imediatamente as versões mais recentes do Azure PowerShell e da CLI do Azure, pois o agendamento de publicação das três ferramentas é diferente. No entanto, o Azure Cloud Shell geralmente é pensado para sempre conter as versões mais recentes de ambas as ferramentas.

Qual ferramenta de linha de comando do Azure é a mais adequada para você?

Ao escolher a ferramenta certa, considere a experiência anterior 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 é a melhor opção.

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

Escolha a ferramenta que usa sua experiência e reduz sua curva de aprendizagem. Aproveite o Microsoft Learning para se tornar proficiente em gerenciamento do Azure na linha de comando.

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

Pontos principais:

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

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

Comandos de entrada, assinatura e localização:

Comando CLI do Azure Azure PowerShell
Entrar com um navegador da Web az login Connect-AzAccount
Obter assinaturas disponíveis az account list Get-AzSubscription
Configurar assinatura az account set –-subscription <SubscriptionId> Set-AzContext -Subscription <SubscriptionID>
Listar locais do Azure az account list-locations Get-AzLocation

Encontrar versões, obter ajuda e exibir ajuda de comando:

Comando CLI do Azure Azure PowerShell
Encontrar versão az --version Get-InstalledModule -Name Az
Obter ajuda az --help Get-Help
Exibir ajuda de comando az vm --help Get-Help -Name New-AzVM

Criar um Grupo de Recursos, uma VM e uma conta de armazenamento:

Comando CLI do Azure Azure PowerShell
Criar grupo de recursos az group create --name <ResourceGroupName> --location eastus New-AzResourceGroup -Name <ResourceGroupName> -Location eastus
Criar uma Máquina Virtual do Azure az vm create --resource-group myResourceGroup --name myVM --image UbuntuLTS --admin-username azureuser --admin-password '<Password>' 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 a VM az vm restart --name myVM --resource-group <ResourceGroupName> Restart-AzVM -Name myVM -ResourceGroupName <ResourceGroupName>
Parar a VM az vm stop --name myVM --resource-group <ResourceGroupName> Stop-AzVM -Name myVM -ResourceGroupName <ResourceGroupName>
Parar e 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 altere os Formatos de Saída:

Comando CLI do Azure Azure PowerShell
Mostrar todas as Informações da assinatura az account list --all Get-AzSubscription | Select-Object -Property *
Saída como uma tabela az account list -o table Get-AzSubscription | Format-Table
Saída como JSON az account show Get-AzSubscription | ConvertTo-Json

Pontos principais:

Próximas etapas

CLI do Azure:

Azure PowerShell: