Azure CLI で拡張機能を使用および管理する

Azure CLI には、拡張機能を読み込む機能が用意されています。 Azure CLI の拡張機能は Python の wheel 形式であり、CLI には付属していませんが CLI コマンドとして実行できます。 拡張機能を使用すると、独自の CLI インターフェイスを記述する機能と共に、リリース前の実験的なコマンドにアクセスすることができます。 この記事では、拡張機能の管理方法について説明し、その使用に関する一般的な質問に回答します。

拡張機能の検索方法

Microsoft によって提供および管理されている Azure CLI 拡張機能を確認するには、az extension list-available コマンドを使用します。

az extension list-available --output table

Microsoft では、ドキュメント サイトでも拡張機能の一覧をホストしています。

拡張機能のインストール方法

拡張機能の手動インストール

インストールする拡張機能を見つけたら、az extension add を使用して取得します。 その拡張機能が az extension list-available に表示される場合は、名前によってインストールすることができます。

az extension add --name <extension-name>

拡張機能のソースが外部リソースであるか、その拡張機能への直接リンクがある場合は、ソース URL またはローカル パスを指定します。 拡張機能は、コンパイルされた Python の wheel 形式ファイルである "必要があります"。

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

index.js の形式に従ってプライベート拡張機能インデックスをビルドし、そこに Azure CLI によって使用される拡張機能インデックス URL をバージョン 2.20.0 から開始するように設定することもできます。 その後、拡張機能を名前でプライベート拡張機能インデックスからインストールできます。

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

インストールされた拡張機能は、$AZURE_EXTENSION_DIR シェル変数の値で確認できます。 この変数が設定されていない場合、既定では、この値は $HOME/.azure/cliextensions (Linux と macOS の場合) または %USERPROFILE%\.azure\cliextensions (Windows の場合) になります。

拡張機能の自動インストール

インストールされていない拡張機能コマンドを実行すると、Azure CLI は実行されたコマンドを認識し、バージョン 2.10.0 から拡張機能を自動的にインストールします。 この機能は 動的インストール と呼ばれ、2.12.0 以降は既定で有効になっています。 また、以前にサポートされていたバージョンの構成によって有効にすることもできます。

az config set extension.use_dynamic_install=yes_prompt

プロンプトなしで動的インストールを有効にするには、次の構成コマンドを使用します。

az config set extension.use_dynamic_install=yes_without_prompt

動的インストール機能を無効にして、既定の動作に戻すには、次の構成コマンドを使用します。 拡張機能がインストールされていない場合、拡張機能コマンドは、コマンドが見つからないというエラーを返します。

az config set extension.use_dynamic_install=no

既定では、動的インストールを求める拡張機能コマンドは、拡張機能のインストール後も継続して実行されます。 run_after_dynamic_install プロパティを no に設定することで、既定の動作を変更して、コマンドが再実行されずに終了するようにできます。

az config set extension.run_after_dynamic_install=no

拡張機能の更新方法

拡張機能を名前でインストールした場合、az extension update を使用してその拡張機能を更新します。

az extension update --name <extension-name>

それ以外の場合は、「拡張機能のインストール」の説明に従って、ソースから拡張機能を更新できます。

CLI で拡張機能の名前を解決できない場合は、アンインストールしてから再インストールを試みてください。 拡張機能が、基本 CLI の一部になっている可能性もあります。 「Azure CLI のインストール」の説明に従って CLI の更新を試み、拡張機能のコマンドが追加されているかどうかを確認してください。

拡張機能のアンインストール方法

拡張機能が不要になった場合は、az extension remove を使用して削除します。

az extension remove --name <extension-name>

また、手動で削除することもできます。それには、インストールした場所から拡張機能を削除します。 $AZURE_EXTENSION_DIR シェル変数によって、モジュールがインストールされている場所が定義されています。 この変数が設定されていない場合、既定では、この値は $HOME/.azure/cliextensions (Linux と macOS の場合) または %USERPROFILE%\.azure\cliextensions (Windows の場合) になります。

rm -rf $AZURE_EXTENSION_DIR/<extension-name>

よく寄せられる質問

ここでは、CLI 拡張機能に関するその他の一般的な質問に回答します。

インストールでは、どのファイル形式が許可されていますか。

現時点では、Python のコンパイルされた wheel 形式のみを拡張機能としてインストールできます。

拡張機能で既存のコマンドを置き換えることはできますか。

はい。 拡張機能で既存のコマンドを置き換えることはできますが、置き換えられたコマンドを実行する前に、CLI によって警告が発せられます。

拡張機能がプレリリースかどうかをどのように確認できますか。

拡張機能がプレリリースに含まれているかどうかは、拡張機能のドキュメントとバージョン管理に示されています。 Microsoft では、多くの場合、プレビューのコマンドを CLI 拡張機能としてリリースしますが、後でそのコマンドをメインの CLI 製品に追加します。 コマンドが拡張機能から移動された場合は、古い拡張機能をアンインストールする必要があります。

拡張機能は相互に依存できますか。

いいえ。 CLI では読み込みの順序が保証されていないため、依存関係が満たされていないことがあります。 拡張機能を削除しても、他の拡張機能には影響しません。

拡張機能は CLI と共に更新されますか。

いいえ。 「拡張機能の更新」で説明したように、拡張機能は個別に更新する必要があります。

独自の拡張機能を開発する方法

詳細については、公式リポジトリを参照してください。 Azure/azure-cli-extensions