Usare e gestire le estensioni con l'interfaccia della riga di comando di Azure

L'interfaccia della riga di comando di Azure consente di caricare estensioni. Le estensioni per l'interfaccia della riga di comando di Azure sono caratterizzate da ruote Python non fornite come parte dell'interfaccia della riga di comando, ma eseguite come comandi dell'interfaccia della riga di comando. Con le estensioni è possibile accedere ai comandi sperimentali e in versione preliminare, nonché scrivere le proprie interfacce della riga di comando. Questo articolo illustra come gestire le estensioni e risponde a domande comuni relative al loro uso.

Come trovare le estensioni

Per visualizzare le estensioni dell'interfaccia della riga di comando di Azure fornite e gestite da Microsoft, usare il comando az extension list-available .

az extension list-available --output table

L'elenco delle estensioni è anche disponibile nel sito della documentazione.

Come installare le estensioni

Installare le estensioni manualmente

Una volta trovata un'estensione da installare, usare az extension add per ottenerla. Se l'estensione è elencata in az extension list-available, è possibile installarla tramite il nome.

az extension add --name <extension-name>

Se l'estensione proviene da una risorsa esterna o se è disponibile un collegamento diretto a essa, indicare l'URL di origine o il percorso locale. L'estensione deve essere un file wheel di Python compilato.

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

È anche possibile compilare un indice di estensione privato seguendo il formato in index.json, quindi impostare l'URL dell'indice dell'estensione usato dall'interfaccia della riga di comando di Azure a partire dalla versione 2.20.0. Successivamente, è possibile installare l'estensione in base al nome dall'indice dell'estensione privata.

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

Dopo aver installato un'estensione, questa viene visualizzata nel valore della variabile della shell $AZURE_EXTENSION_DIR. Se questa variabile non è impostata, per impostazione predefinita il valore è $HOME/.azure/cliextensions su Linux e macOS e %USERPROFILE%\.azure\cliextensions in Windows.

Installare le estensioni automaticamente

A partire dalla versione 2.10.0, quando si esegue un comando di estensione che non è installato, l'interfaccia della riga di comando di Azure può riconoscere il comando eseguito e installare automaticamente l'estensione. Questa funzionalità, denominata installazione dinamica, è abilitata per impostazione predefinita a partire da 2.12.0. È anche possibile abilitarlo tramite la configurazione per le versioni supportate precedenti.

az config set extension.use_dynamic_install=yes_prompt

Usare il comando di configurazione seguente per abilitare l'installazione dinamica senza richiesta.

az config set extension.use_dynamic_install=yes_without_prompt

Usare il comando di configurazione seguente per disattivare la funzionalità di installazione dinamica ripristinando il comportamento predefinito. Se l'estensione non è installata, il comando di estensione restituirà un errore di comando non trovato.

az config set extension.use_dynamic_install=no

Per impostazione predefinita, un comando di estensione che richiede l'installazione dinamica continuerà a essere eseguito dopo l'installazione dell'estensione. È possibile modificare il comportamento predefinito e chiudere il comando senza eseguire di nuovo impostando la run_after_dynamic_install proprietà su no.

az config set extension.run_after_dynamic_install=no

Come aggiornare le estensioni

Se un'estensione è stata installata in base al nome, aggiornarla con az extension update.

az extension update --name <extension-name>

In caso contrario, è possibile aggiornare l'estensione dall'origine seguendo le istruzioni riportate in Installare le estensioni.

Se il nome di un'estensione non può essere risolto dall'interfaccia della riga di comando, disinstallare l'estensione e provare a reinstallarla. È anche possibile che l'estensione sia diventata parte dell'interfaccia della riga di comando di base. Provare ad aggiornare l'interfaccia della riga di comando come descritto in Installare l'interfaccia della riga di comando di Azure e verificare se i comandi dell'estensione sono stati aggiunti.

Come disinstallare le estensioni

Se un'estensione non è più necessaria, rimuoverla con az extension remove.

az extension remove --name <extension-name>

È anche possibile rimuovere manualmente l'estensione eliminandola dalla posizione in cui è stata installata. La variabile della shell $AZURE_EXTENSION_DIR definisce dove vengono installati i moduli. Se questa variabile non è impostata, per impostazione predefinita il valore è $HOME/.azure/cliextensions su Linux e macOS e %USERPROFILE%\.azure\cliextensions in Windows.

rm -rf $AZURE_EXTENSION_DIR/<extension-name>

Domande frequenti

Di seguito sono fornite alcune risposte ad altre domande comuni sulle estensioni dell'interfaccia della riga di comando.

Quali sono i formati di file per cui è consentita l'installazione?

Al momento è possibile installare come estensioni solo i file wheel di Python compilati.

Le estensioni possono sostituire i comandi esistenti?

Sì. Le estensioni possono sostituire i comandi esistenti, ma prima di eseguire un comando sostituito l'interfaccia della riga di comando mostrerà un avviso.

Come è possibile stabilire se un'estensione non sia stata rilasciata?

La documentazione e il controllo delle versioni di un'estensione indicano se si tratta della versione non definitiva. Microsoft rilascia spesso comandi in anteprima come estensioni dell'interfaccia della riga di comando, con l'opzione di trasferirli nel prodotto principale dell'interfaccia della riga di comando in un secondo momento. Quando i comandi vengono trasferiti all'esterno delle estensioni, l'estensione precedente deve essere disinstallata.

Le estensioni possono dipendere l'una dall'altra?

No. Dato che l'interfaccia della riga di comando non garantisce un ordine di caricamento, è possibile che le dipendenze non vengano soddisfatte. La rimozione di un'estensione non ha alcun effetto sulle altre.

Le estensioni vengono aggiornate insieme all'interfaccia della riga di comando?

No. Le estensioni devono essere aggiornate separatamente, come descritto in Aggiornare le estensioni.

Come è possibile sviluppare un'estensione personalizzata?

Fare riferimento al repository ufficiale per altre informazioni. Azure/azure-cli-extensions