Compartir a través de


Cómo usar la extensión alias de la CLI de Azure

La extensión alias permite a los usuarios definir comandos personalizados para la CLI de Azure mediante comandos existentes. Los alias ayudan a simplificar el flujo de trabajo gracias a los accesos directos. El motor de plantillas de Jinja2 impulsa los alias de la CLI de Azure y ofrece procesamiento avanzado de argumentos.

Nota:

La extensión alias está en versión preliminar pública. Las características y el formato del archivo de configuración pueden cambiar.

Instalar la extensión alias

La versión mínima necesaria de la CLI de Azure para usar la extensión alias es 2.0.28. Para comprobar la versión de la CLI, ejecute az --version. Si tiene que actualizar la instalación, siga las instrucciones de Instalación de la CLI de Azure.

Instale la extensión alias con el comando az extension add.

az extension add --name alias

Compruebe la instalación de la extensión con az extension list. Si la extensión alias se instaló correctamente, se muestra en la salida del comando.

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

Mantener actualizada la extensión alias

La extensión alias se encuentra en desarrollo activo y se publican nuevas versiones con regularidad. No se instalan nuevas versiones al actualizar la CLI. Instale las actualizaciones de la extensión con az extension update.

az extension update --name alias

Administración de alias de la CLI de Azure

La extensión de alias permite crear y administrar alias para otros comandos de la CLI. Para ver todos los comandos disponibles y los detalles de los parámetros, ejecute el comando de alias con --help.

az alias --help

Crear comandos de alias sencillos

Un uso de los alias es acortar los nombres de los comandos o de los grupos de comandos existentes. Por ejemplo, puede acortar el grupo de comandos group a rg y el comando list a ls.

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

Ahora puede usar estos alias recién definidos en cualquier lugar donde usaría su definición.

az rg list
az rg ls
az vm ls

No incluya az como parte del comando alias.

Los alias también pueden ser métodos abreviados para comandos completos. En el ejemplo siguiente, se enumeram los grupos de recursos disponibles y su ubicación en la tabla de salida:

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

Ahora, ls-groups se puede ejecutar como cualquier otro comando de la CLI.

az ls-groups

Crear un comando de alias con argumentos

También puede agregar argumentos posicionales a un comando de alias; para ello, inclúyalos como {{ arg_name }} en el nombre de alias. El espacio en blanco entre las llaves es obligatorio.

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

El alias de ejemplo siguiente muestra cómo usar argumentos posicionales para obtener la dirección IP pública de una máquina virtual.

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"

Al ejecutar este comando, asigne valores a los argumentos posicionales.

az get-vm-ip MyResourceGroup MyVM

También puede usar variables de entorno en los comandos de alias, que se evalúan en tiempo de ejecución. En el ejemplo siguiente, se agrega el alias create-rg, que crea un grupo de recursos en eastus y agrega una etiqueta owner. A esta etiqueta se le asigna el valor de la variable de entorno local USER.

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

Para registrar las variables de entorno en el comando del alias, se debe agregar un carácter de escape al signo de dólar $.

Procesar argumentos mediante plantillas de Jinja2

Jinja2 realiza la sustitución de argumentos en la extensión de alias. Las plantillas de Jinja2 permiten manipular los argumentos.

Con las plantillas de Jinja2, puede escribir alias que tomen tipos de argumentos diferentes que los del comando subyacente. Por ejemplo, puede crear un alias que tome una dirección URL de almacenamiento. Después, se analiza esta dirección URL para pasar el nombre de la cuenta y el contenedor al comando de almacenamiento.

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 más información sobre el motor de plantillas Jinja2, consulte la documentación de Jinja2.

Archivo de configuración de alias

Otra manera de crear y modificar alias es modificar el archivo de configuración de alias. Las definiciones de los comandos de alias se escriben en un archivo de configuración, ubicado en $AZURE_CONFIG_DIR/alias. El valor predeterminado de AZURE_CONFIG_DIR es $HOME/.azure en Linux y macOS, y %USERPROFILE%\.azure en Windows. El archivo de configuración de alias se escribe en el formato de archivo de configuración INI. El formato de los comandos de alias es:

[alias_name]
command = invoked_commands

Para los alias que tienen argumentos de posición, el formato de los comandos de alias es:

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

Creación de un comando de alias con argumentos mediante el archivo de configuración de alias

El ejemplo siguiente muestra un alias para un comando con argumentos. Este comando obtiene la dirección IP pública de una máquina virtual. Los comandos de alias deben estar todos en una sola línea y usar todos los argumentos en el nombre de alias.

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

Desinstalar la extensión alias

Para desinstalar la extensión, use el comando az extension remove.

az extension remove --name alias

Si desinstala debido a un error u otros problemas con la extensión, abra un problema en GitHub para que podamos proporcionar una corrección.