Uso y administración de extensiones con la CLI de Azure

La CLI de Azure ofrece la posibilidad de cargar extensiones. Las extensiones de la CLI de Azure se caracterizan como archivos wheel de Python que no se distribuyen como parte de la CLI, pero se ejecutan como comandos de la CLI. Con las extensiones, obtendrá acceso a comandos experimentales y en versión preliminar, además de poder escribir sus propias interfaces de la CLI. En este artículo se explica cómo administrar las extensiones y se da respuesta a preguntas comunes sobre su uso.

Procedimiento para buscar extensiones

Para ver las extensiones de la CLI de Azure que Microsoft proporciona y mantiene, use el comando az extension list-available.

az extension list-available --output table

También hospedamos una lista de las extensiones en el sitio de documentación.

Procedimiento para instalar extensiones

Instalación manual de extensiones

Una vez que haya encontrado una extensión para instalar, use az extension add para obtenerla. Si la extensión aparece enumerada en az extension list-available, puede instalarla por nombre.

az extension add --name <extension-name>

Si la extensión es de un recurso externo o dispone de un vínculo directo a ella, proporcione la dirección URL de origen o la ruta de acceso local. La extensión debe ser un archivo wheel de Python compilado.

az extension add --source <URL-or-path>

También puede crear un índice de extensión privado con el formato de index.json y, a continuación, establecer la dirección URL del índice de extensión que usa la CLI de Azure a partir de la versión 2.20.0. Después, puede instalar la extensión por nombre desde el índice de extensión privado.

az config set extension.index_url=<URL>
az extension add --name <extension-name>

Cuando se instala una extensión, se encuentra en el valor de la variable $AZURE_EXTENSION_DIR del shell. Si esta variable no está establecida, el valor predeterminado es $HOME/.azure/cliextensions en Linux y macOS y %USERPROFILE%\.azure\cliextensions en Windows.

Instalación automática de extensiones

Al ejecutar un comando de extensión que no está instalado, la CLI de Azure puede reconocer el comando que se ejecuta e instalar automáticamente la extensión a partir de la versión 2.10.0. Esta característica, conocida como instalación dinámica, está habilitada de manera predeterminada desde la versión 2.12.0. También puede habilitarla mediante la configuración para las versiones admitidas anteriormente.

az config set extension.use_dynamic_install=yes_prompt

Use el siguiente comando de configuración para habilitar la instalación dinámica sin preguntar.

az config set extension.use_dynamic_install=yes_without_prompt

Use el siguiente comando de configuración para desactivar la característica de instalación dinámica para revertir al comportamiento predeterminado. El comando de extensión devuelve un error de comando no encontrado si la extensión no está instalada.

az config set extension.use_dynamic_install=no

De manera predeterminada, un comando de extensión que solicita la instalación dinámica continuará con la ejecución después de la instalación de la extensión. Puede cambiar el comportamiento predeterminado y hacer que el comando finalice sin una nueva ejecución; para ello, establezca la propiedad run_after_dynamic_install en no.

az config set extension.run_after_dynamic_install=no

Procedimiento para actualizar extensiones

Si instaló una extensión por nombre, actualícela con az extension update.

az extension update --name <extension-name>

En caso contrario, una extensión se puede actualizar desde el origen siguiendo las instrucciones de Instalar extensiones.

Si no puede usar la CLI para resolver un nombre de extensión, desinstálela e intente volver a instalarla. La extensión también podría haberse vuelto parte de la CLI de base. Intente actualizar la CLI, tal y como se describe en Instalación de la CLI de Azure y compruebe si se agregaron los comandos de la extensión.

Procedimiento para desinstalar extensiones

Si ya no necesita una extensión, quítela con az extension remove.

az extension remove --name <extension-name>

También puede eliminar una extensión de forma manual mediante su eliminación de la ubicación donde se instaló. La variable $AZURE_EXTENSION_DIR del shell define donde están instalados los módulos. Si esta variable no está establecida, el valor predeterminado es $HOME/.azure/cliextensions en Linux y macOS y %USERPROFILE%\.azure\cliextensions en Windows.

rm -rf $AZURE_EXTENSION_DIR/<extension-name>

Preguntas más frecuentes

A continuación encontrará respuestas a otras preguntas comunes acerca de las extensiones de la CLI.

¿Qué formatos de archivo se permiten para la instalación?

Actualmente, solo pueden instalarse archivos wheel de Python compilados como extensiones.

¿Pueden reemplazar las extensiones a comandos existentes?

Sí. Las extensiones pueden reemplazar comandos existentes pero, antes de ejecutar un comando que se ha reemplazado, la CLI emite una advertencia.

¿Cómo se puede saber si una extensión está en versión preliminar?

La documentación y el control de versiones de una extensión muestran si se encuentra en versión preliminar. Microsoft publica periódicamente comandos en versión preliminar como extensiones de la CLI, con la opción de trasladarlos más adelante al producto de CLI principal. Cuando se retiran comandos de las extensiones, se debe desinstalar la extensión anterior.

¿Las extensiones pueden depender entre sí?

No. Como la CLI no garantiza un orden de carga, puede que las dependencias no se cumplan. La retirada de una extensión no afecta a las demás.

¿Las extensiones se actualizan junto con la CLI?

No. Las extensiones deben actualizarse por separado, tal y como se describe en la sección Actualizar extensiones.

¿Cómo podemos desarrollar nuestra propia extensión?

Para obtener más ayuda, consulte el repositorio oficial. Azure/azure-cli-extensions