Partilhar via


Como utilizar a extensão de alias da CLI do Azure

A extensão de alias permite que os utilizadores definam comandos personalizados para a CLI do Azure através da utilização de comandos existentes. Os aliases ajudam a simplificar o fluxo de trabalho ao permitirem atalhos. O mecanismo de modelo Jinja2 alimenta aliases da CLI do Azure e oferece processamento avançado de argumentos.

Nota

A Extensão de Alias está em modo de pré-visualização pública. As funcionalidades e o formato do ficheiro de configuração estão sujeitos a alterações.

Instalar a extensão de alias

Para utilizar a extensão de alias, a versão mínima necessária da CLI do Azure é 2.0.28. Para verificar a sua versão da CLI, execute az --version. Se precisar de atualizar a sua instalação, siga as instruções apresentadas em Instalar a CLI do Azure.

Instale a extensão alias com o comando az extension add .

az extension add --name alias

Verifique a instalação da extensão com o comando az extension list. Se a extensão de alias foi instalada corretamente, aparece listada na saída do comando.

az extension list --output table --query '[].{Name:name}'
Name
------
alias

Mantenha a extensão de alias atualizada

A extensão de alias está em permanente desenvolvimento, sendo lançadas regularmente novas versões. As novas versões não são instaladas quando atualiza a CLI. Instale as atualizações para a extensão com o comando az extension update.

az extension update --name alias

Gerir aliases para a CLI do Azure

A extensão de alias permite criar e gerir aliases para outros comandos da CLI. Para ver todos os comandos disponíveis e os detalhes dos parâmetros, execute o comando de alias com --help.

az alias --help

Criar comandos de alias simples

Uma das utilizações dos aliases consiste em abreviar os grupos de comandos ou os nomes de comandos existentes. Por exemplo, pode abreviar o grupo de comandos group para rg e o comando list para ls.

az alias create --name rg --command group
az alias create --name ls --command list

Agora, estes aliases recém-definidos podem ser utilizados em qualquer lado em que a respetiva definição é utilizada.

az rg list
az rg ls
az vm ls

Não inclua az como parte do comando alias.

Os aliases também podem ser atalhos para comandos completos. O exemplo seguinte apresenta uma lista de grupos de recursos disponíveis e as respetivas localizações na saída da tabela:

az alias create --name ls-groups --command "group list --query '[].{Name:name, Location:location}' --output table"

Agora, ls-groups já pode ser executado como qualquer outro comando da CLI.

az ls-groups

Criar um comando de alias com argumentos

Também pode adicionar argumentos posicionais a um comando de alias, ao incluí-los como {{ arg_name }} no nome do alias. O espaço em branco dentro das chavetas é obrigatório.

az alias create --name "alias_name {{ arg1 }} {{ arg2 }} ..." --command "invoke_including_args"

O alias de exemplo seguinte mostra como utilizar argumentos posicionais para obter o endereço IP público para uma VM.

az alias create \
    --name "get-vm-ip {{ resourceGroup }} {{ vmName }}" \
    --command "vm list-ip-addresses --resource-group {{ resourceGroup }} --name {{ vmName }}
        --query [0].virtualMachine.network.publicIpAddresses[0].ipAddress"

Ao executar este comando, fornece valores aos argumentos posicionais.

az get-vm-ip MyResourceGroup MyVM

Também pode utilizar variáveis de ambiente em comandos com aliases, sendo estas avaliadas em runtime. O exemplo seguinte adiciona o alias create-rg, que cria um grupo de recursos em eastus e adiciona uma etiqueta owner. A esta etiqueta é atribuído o valor da variável de ambiente local USER.

az alias create \
    --name "create-rg {{ groupName }}" \
    --command "group create --name {{ groupName }} --location eastus --tags owner=\$USER"

Para registar as variáveis de ambiente no comando de alias, o cifrão $ tem de ter uma sequência de escape.

Processar argumentos com modelos Jinja2

Jinja2 executa a substituição de argumento na extensão de alias. Os modelos Jinja2 permitem manipular os argumentos.

Com os modelos Jinja2, pode escrever aliases que aceitam tipos de argumento diferentes em relação ao comando subjacente. Por exemplo, pode criar um alias que aceita um URL de armazenamento. Em seguida, este URL é analisado para transmitir os nomes da conta e do contentor para o comando de armazenamento.

az alias create \
    --name 'storage-ls {{ url }}' \
    --command "storage blob list
        --account-name {{ url.replace('https://', '').split('.')[0] }}
        --container-name {{ url.replace('https://', '').split('/')[1] }}"

Para saber mais sobre o motor de modelos Jinja2, consulte a documentação de Jinja2.

Ficheiro de configuração de alias

Outra forma de criar e modificar aliases é alterar o ficheiro de configuração de alias. As definições de comandos de alias são escritas num ficheiro de configuração, localizado em $AZURE_CONFIG_DIR/alias. O valor predefinido de AZURE_CONFIG_DIR é $HOME/.azure em macOS e no Linux, e %USERPROFILE%\.azure no Windows. O ficheiro de configuração do alias é escrito no formato do ficheiro de configuração INI. O formato do comando de alias é:

[alias_name]
command = invoked_commands

Para os aliases que têm argumentos posicionais, o formato dos comandos de alias é:

[alias_name {{ arg1 }} {{ arg2 }} ...]
command = invoked_commands_including_args

Criar um comando de alias com argumentos através do ficheiro de configuração de alias

O exemplo seguinte mostra um alias para um comando com argumentos. Este comando obtém o endereço IP público para uma VM. Os comandos com aliases têm de estar todos numa única linha e utilizar todos os argumentos no nome do alias.

[get-vm-ip {{ resourceGroup }} {{ vmName }}]
command = vm list-ip-addresses --resource-group {{ resourceGroup }} --name {{ vmName }} --query [0].virtualMachine.network.publicIpAddresses[0].ipAddress

Desinstalar a extensão de alias

Para desinstalar a extensão, utilize o comando az extension remove.

az extension remove --name alias

Se desinstalou devido a um erro ou outro problema com a extensão, registe um problema no GitHub para que possamos fornecer uma correção.