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 che non vengono fornite come parte dell'interfaccia della riga di comando, ma vengono eseguite come comandi dell'interfaccia della riga di comando. Con le estensioni, si ottiene l'accesso ai comandi sperimentali e prerelease insieme alla possibilità di scrivere interfacce dell'interfaccia della riga di comando personalizzate. 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 creare un indice di estensione privato seguendo il formato in index.json, quindi impostare l'URL dell'indice di estensione usato dall'interfaccia della riga di comando di Azure a partire dalla versione 2.20.0. In seguito, è 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

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 a partire dalla versione 2.10.0. Questa funzionalità, definita installazione dinamica, è abilitata per impostazione predefinita dal momento 2.12.0che . È anche possibile abilitarla 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. Il comando estensione restituisce un errore di comando non trovato se l'estensione non è installata.

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 impostare la run_after_dynamic_install proprietà su no.

az config set extension.run_after_dynamic_install=no

Come aggiornare le estensioni

Se si installa un'estensione per nome, aggiornarla usando 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 non è possibile usare l'interfaccia della riga di comando per risolvere un nome di estensione, disinstallarlo e tentare di reinstallarlo. È 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 che è stato sostituito dall'interfaccia della riga di comando genera un avviso.

Come è possibile stabilire se un'estensione è in versione preliminare?

La documentazione e il controllo delle versioni di un'estensione mostra se è in versione preliminare. 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 influisce sugli altri utenti.

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?

Per altre informazioni, vedere il repository ufficiale. Azure/azure-cli-extensions