Sugestões para utilizar a CLI do Azure com sucesso

A CLI do Azure é uma ferramenta de linha de comando que permite configurar e gerenciar recursos do Azure de vários ambientes de shell. Depois de escolher seu ambiente de shell preferido e instalar a CLI do Azure, use este artigo para descobrir dicas úteis sobre como evitar armadilhas comuns e usar a CLI do Azure com êxito.

Para saber mais sobre comandos específicos da CLI do Azure, consulte a lista Referência da CLI do Azure.

Escolha uma linguagem de script

A CLI do Azure é uma ferramenta de código aberto que você pode executar em muitas linguagens de script.

  • É a linguagem de script que determina as regras de citação, caractere de escape e continuação de linha para comandos da CLI do Azure.
  • Pode ser desafiador copiar a sintaxe de comando da CLI do Azure contendo aspas simples ou duplas, caracteres de escape ou caracteres de continuação de linha entre idiomas.
  • A maioria da documentação da Microsoft para a CLI do Azure é escrita e testada em Bash.
  • Se o PowerShell for sua linguagem de script preferida, considere usar a ferramenta, Azure PowerShell, que tem funcionalidade nativa de linguagem de script do PowerShell .

Para obter mais informações sobre opções de linguagem de script para a CLI do Azure, consulte Escolher a ferramenta de linha de comando correta.

FAQ

Aqui estão alguns links para ajudá-lo a responder às perguntas mais frequentes da CLI do Azure:

Área temática com link para o artigo Gorjeta
Trabalhar atrás de um proxy Informações sobre como trabalhar em um servidor proxy.
Gerente de Conta Web (WAM) Informações sobre WAM e como desativá-lo.
Definições de configuração Lista de definições de configuração da CLI do Azure disponíveis, como ativar/desativar os recursos da CLI do Azure e definir valores padrão.
Formatos de saída Instruções sobre como armazenar IDs de recursos do Azure em variáveis e proteger segredos retornados por comandos da CLI do Azure.
Passando valores JSON em uma cadeia de caracteres Citação de exemplos para valores de parâmetros JSON.
Ciclo de vida do suporte Informações sobre sistemas operacionais suportados, linguagens de script e o fim do serviço para versões e dependências da CLI do Azure.
API REST Comando az rest alternativo a ser usado quando um comando específico da CLI do Azure não estiver disponível para um recurso do Azure.
Grupos de referência da CLI do Azure Uma lista a Z de grupos de referência da CLI do Azure com detalhamento para subgrupos e todos os comandos da CLI do Azure.
Artigos da CLI do Azure Uma lista a Z de inícios rápidos, guias de instruções e tutoriais que usam comandos de referência da CLI do Azure. A lista é agrupada por grupo de referência e subgrupo para facilitar a pesquisa.
Exemplos da CLI do Azure Lista de exemplos de A a Z, incluindo esses exemplos no repositório GitHub Azure-samples/azure-cli-samples.
Resolução de problemas Causa do erro e dicas de correção.
Novidades Breve resumo dos novos recursos da CLI do Azure.

Passar valores para outro comando

Se o valor for usado mais de uma vez, atribua-o a uma variável. As variáveis permitem que você use valores mais de uma vez ou crie scripts mais gerais. Este exemplo atribui uma ID encontrada pelo comando az vm list a uma variável.

# assign the list of running VMs to a variable
running_vm_ids=$(az vm list --resource-group MyResourceGroup --show-details \
    --query "[?powerState=='VM running'].id" --output tsv)

# verify the value of the variable
echo $running_vm_ids

Se o valor for usado apenas uma vez, considere a tubulação. (A tubulação passa a saída de um comando como entrada para um segundo comando.)

az vm list --query "[?powerState=='VM running'].name" --output tsv | grep my_vm

Para listas de vários valores, considere as seguintes opções:

  1. Se você precisar de mais controles sobre o resultado, use um loop "for":
#!/usr/bin/env bash
for vmList in $(az vm list --resource-group MyResourceGroup --show-details --query "[?powerState=='VM running'].id"   -output tsv); do
    echo stopping $vmList
    az vm stop --ids $vmList
    if [ $? -ne 0 ]; then
        echo "Failed to stop $vmList"
        exit 1
    fi
    echo $vmList stopped
done
  1. Como alternativa, use xargs e considere usar o -P sinalizador para executar as operações em paralelo para melhorar o desempenho:
az vm list --resource-group MyResourceGroup --show-details \
    --query "[?powerState=='VM stopped'].id" \
    --output tsv | xargs -I {} -P 10 az vm start --ids "{}"
  1. Finalmente, a CLI do Azure tem suporte interno para processar comandos com múltiplos --ids em paralelo para obter o mesmo efeito de xargs. @- é usado para obter valores do tubo:
az vm list --resource-group MyResourceGroup --show-details \
    --query "[?powerState=='VM stopped'].id" \
    --output tsv | az vm start --ids @-

Para obter mais informações sobre como usar construções Bash com a CLI do Azure, incluindo loops, instruções de caso, if.. então.. e tratamento de erros, consulte Aprenda a usar o Bash com a CLI do Azure.

Parâmetros de atualização comuns

Os grupos de comandos da CLI do Azure geralmente apresentam um comando update. Por exemplo, as Máquinas Virtuais do Azure incluem o comando az vm update . A maioria dos comandos de atualização oferece os três parâmetros comuns: --add, --sete --remove.

Os --set parâmetros e --add usam uma lista de pares chave-valor separados por espaço: key1=value1 key2=value2. Para ver quais propriedades você pode atualizar, use um comando show, como az vm show.

az vm show --resource-group VMResources --name virtual-machine-01

Para simplificar o comando, considere o uso de uma cadeia de caracteres JSON. Por exemplo, para anexar um novo disco de dados a uma máquina virtual, use o seguinte valor:

az vm update --resource-group VMResources --name virtual-machine-01 \
--add storageProfile.dataDisks "{\"createOption\": \"Attach\", \"managedDisk\":
   {\"id\":
   \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/yg/providers/Microsoft.Compute/disks/yg-disk\"},
   \"lun\": 1}"

Comandos de recursos genéricos

Um serviço com o qual você deseja trabalhar pode não ter suporte à CLI do Azure. Você pode usar os comandos az resource ou az rest para trabalhar com esses recursos.

Execução simultânea

Se você executar comandos da CLI do Azure simultaneamente na mesma máquina, conflitos de gravação poderão acontecer se vários comandos da CLI do Azure gravarem no mesmo cache de token da Biblioteca de Autenticação da Microsoft (MSAL).

Para evitar possíveis falhas, isole a pasta de configuração da CLI do Azure para cada script definindo a variável AZURE_CONFIG_DIR de ambiente para cada script em um diretório separado. Os comandos da CLI do Azure nesse script salvam a configuração e o cache de token no local configurado em vez da pasta padrão ~/.azure .

export AZURE_CONFIG_DIR=/my/config/dir

Operações assíncronas

As operações no Azure podem levar uma quantidade notável de tempo. Por exemplo, configurar uma máquina virtual em um data center não é instantâneo. A CLI do Azure aguarda até que o comando termine para aceitar outros comandos. Muitos comandos, portanto, oferecem um --no-wait parâmetro como mostrado aqui:

az group delete --name MyResourceGroup --no-wait

Quando você exclui um grupo de recursos, todos os recursos que pertencem a ele também são removidos. A remoção desses recursos pode levar muito tempo. Quando você executa o comando com o --no-wait parâmetro, o console aceita novos comandos sem interromper a remoção.

Muitos comandos oferecem uma opção de espera, pausando o console até que alguma condição seja atendida. O exemplo a seguir usa o comando az vm wait para dar suporte à criação de recursos independentes em paralelo:

az vm create --resource-group VMResources --name virtual-machine-01 --image centos --no-wait
az vm create --resource-group VMResources --name virtual-machine-02 --image centos --no-wait

subscription=$(az account show --query "id" -o tsv)
vm1_id="/subscriptions/$subscription/resourceGroups/VMResources/providers/Microsoft.Compute/virtualMachines/virtual-machine-01"
vm2_id="/subscriptions/$subscription/resourceGroups/VMResources/providers/Microsoft.Compute/virtualMachines/virtual-machine-02"
az vm wait --created --ids $vm1_id $vm2_id

Depois que ambos os IDs forem criados, você poderá usar o console novamente.

Exemplos de script

Aqui estão exemplos de como usar variáveis e fazer looping em uma lista ao trabalhar com Máquinas Virtuais do Azure. Para obter exemplos detalhados sobre como usar construções Bash com a CLI do Azure, incluindo loops, instruções de caso, if.. então.. e tratamento de erros, consulte Aprenda a usar o Bash com a CLI do Azure.

Use estes scripts para salvar IDs em variáveis:

ECHO OFF
SETLOCAL
FOR /F "tokens=* USEBACKQ" %%F IN (
   `az vm list --resource-group VMResources --show-details --query "[?powerState=='VM running'].id" --output tsv`
) DO (
    SET "vm_ids=%%F %vm_ids%"  :: construct the id list
)
az vm stop --ids %vm_ids% :: CLI stops all VMs in parallel

Use estes scripts para percorrer uma lista:

ECHO OFF
SETLOCAL
FOR /F "tokens=* USEBACKQ" %%F IN (
    `az vm list --resource-group VMResources --show-details --query "[?powerState=='VM running'].id" --output tsv`
) DO (
    ECHO Stopping %%F
    az vm stop --ids %%F
)

Consulte também