Compartilhar via


Dicas para usar a CLI do Azure com êxito

A CLI do Azure é uma ferramenta de linha de comando que permite configurar e gerenciar recursos do Azure de muitos ambientes de shell. Depois de escolher seu ambiente de shell preferencial 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 de referências da CLI do Azure.

Escolher um idioma de script

A CLI do Azure é uma ferramenta de software livre que você pode executar em muitos idiomas 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 no Bash.
  • Se o PowerShell for o idioma de script de sua escolha, considere usar a ferramenta , o Azure PowerShell, que tem funcionalidade de linguagem de script nativa do PowerShell .

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

Perguntas Freqüentes

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

Área de assunto com link do artigo Dica
Trabalhar com um proxy Informações sobre como trabalhar em um servidor proxy.
Gerenciador de Contas Web (WAM) Informações sobre o WAM e como desabilitá-lo.
Definições de configuração Lista de configurações disponíveis da CLI do Azure, como ativar/desativar 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 Citando exemplos para valores de parâmetro JSON.
Ciclo de vida do suporte Informações sobre sistemas operacionais compatíveis, linguagens de script e o fim do serviço para versões e dependências da CLI do Azure.
REST API 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 Lista A 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 Lista A a Z de Guias de Início Rápido, 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 aqueles no repositório do GitHub Azure-samples/azure-cli-samples.
Solução de problemas Dicas de causa e correção de erro.
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. No uso de piping, a saída de um comando serve 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 flag para executar as operações em paralelo, melhorando assim 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. Por fim, a CLI do Azure possui suporte interno para processar comandos com vários --ids em paralelo, alcançando assim o mesmo efeito do xargs. @- é usado para obter valores do pipe:
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 constructos bash com a CLI do Azure, incluindo loops, instruções de caso, if.. então.. caso contrário, e tratamento de erros, consulte Saiba como usar o Bash com a CLI do Azure.

Parâmetros comuns de atualização

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

Os parâmetros --set e --add aceitam 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 no mesmo computador, conflitos de gravação poderão ocorrer se vários comandos da CLI do Azure gravarem no mesmo cache de token da MSAL (Biblioteca de Autenticação da Microsoft).

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 para 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 um tempo notável. Por exemplo, configurar uma máquina virtual em um data center não é instantâneo. A CLI do Azure aguarda até que o comando seja concluído para aceitar outros comandos. Muitos comandos oferecem, portanto, um --no-wait parâmetro, conforme 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 ambas as IDs forem criadas, você poderá usar o console novamente.

Exemplos de scripts

Aqui estão exemplos para usar variáveis e fazer loop por meio de uma lista ao trabalhar com máquinas virtuais do Azure. Para obter exemplos detalhados sobre como usar constructos bash com a CLI do Azure, incluindo loops, instruções de caso, if.. então.. caso contrário, e tratamento de erros, consulte Saiba como usar o Bash com a CLI do Azure.

Use esses 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

Utilize esses 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