もしMicrosoft Azureアカウントをお持ちで、まだAzureポータルを通じてリソースを管理している場合、それはもったいないことです。クリックを減らし、生産性を向上させる最良の方法の一つは、Azure CLIを使用することです。
Azure CLIはPythonで書かれたクロスプラットフォームのツールセットで、コマンドラインからほぼすべてのAzureリソースを管理できます。どのオペレーティングシステムを使用しているかに関係なく、Azure CLIはすべてのプラットフォームで一貫したエクスペリエンスを提供します。
このチュートリアルでは、Azure CLIの使い方を学びます。初期設定の実行方法、およびさまざまなAzure CLIコマンドを使用して一般的なリソースを作成および削除する方法を学びます。
前提条件
この記事はチュートリアルになります。ステップバイステップで進める予定の場合、次のいずれかが必要です。
- Azure CLI – このチュートリアルではDockerコンテナでv2.20.0を使用しますが、他のプラットフォームでも同じようにコマンドが機能します。
- Azure Cloudアカウント – このチュートリアルは無料アカウントを使用して行うことができます。
- Azure内でリソースを作成するためのアクセス権、おそらくサービス プリンシパルを使用してMicrosoftアカウントを介して。
az help
「Azure CLI」でコマンドを実行する前に、az help
コマンドの使用方法を学びましょう。Azure CLIには豊富なヘルプがあります。このチュートリアルではすべてのコマンドを網羅することは不可能なので、az help
の使用方法を学ぶことが重要です。
始めるには、ヘルプシステムを操作してさまざまなコマンドに関する詳細情報を確認する方法を見てみましょう。
典型的なヘルプの例の操作
例は最適な学習素材です。Azure CLIのヘルプシステムの使用方法を説明するために、Azureでリソースグループを作成する必要なコマンドを見つける例を進めます。
ターミナルを開いた状態で:
1. az help
コマンドを実行します。このコマンドは2つのタイプの出力を返します。グループとサブグループです。
コマンドはグループとして整理されます。通常、チュートリアル(またはドキュメント)ではこれらのグループを「コマンド」と呼びます。各グループはAzureサービスを表すように階層的に分かれています。

2. group
と呼ばれるサブグループを見つけるまでスクロールします。以下の説明からわかるように、このサブグループはリソースグループを管理する責任があります。グループはアルファベット順に並んでいます。

3. --help
パラメータを使用して、探しているコマンドを実行します。 --help
パラメータを使用すると、変更は行われません。グループまたはコマンドのすべてのヘルプドキュメントが返されます。
以下に、group
グループと1つのサブグループ(lock
)が含まれているのが見えます。

4. リソースグループを作成したい場合は、create
コマンドが適切なコマンドのようです。これで、元のaz group
参照によりより具体的なコマンドを追加して、ヘルプを見つけ続けることができます。
任意のコマンドで
--help
パラメータを参照して、ヘルプドキュメントを表示できます。
現在、--help
パラメータはcreate
コマンドの情報を表示します。コマンドには以下に示す引数があります。この例では、リソースグループと必要なlocation
を指定するために必要な引数が得られます。

az find
で構文の例を見つける
--help
パラメータで簡単に探せない場合は、az find
コマンドを見てみてください。このコマンドは、以下に示すように、グループ/コマンド参照を使用して構文の例を検索します。
たとえば、前述のように--help
でヘルプシステムをナビゲートする代わりに、az find
で同じタスクを単一行で実行します。

az configure
を使用してデフォルトの構成を割り当て
Azure CLIには多くのコマンドと機能があります。これらの機能のそれぞれには、ログやデータ収集の設定など、さまざまな構成があります。Azure CLIを初めて設定する際に完了するべき最初のタスクの1つは、az configure
コマンドを実行することです。
1つのコマンドで、az configure
コマンドが3つの異なる設定を案内します:
- 出力形式 – Azure CLIが出力する方法の7つの異なる方法
- ログ – すべてのAzure CLIアクティビティをファイルに記録する機能
- テレメトリ – Azure CLIの使用方法に関する情報をMicrosoftに送信するかどうかを有効または無効にする機能
始めるには、すでに Azure CLIがインストールされていると仮定してください:
1. ターミナル(BashまたはPowerShell)を開きます。
2. コマンドaz configure
を入力します。すべての設定が.azure/configファイルに保存されることを知らせるシンプルなメニューが表示されます。続行するにはYを押します。

3. このコマンドではまず、デフォルトの出力形式を選択するように求められます。ここで、必要な出力形式を選択してください。デフォルトの出力形式は、コマンドを実行した後やエラーメッセージを受け取った後の画面に出力される内容を設定します。

以下の例では、
output
パラメータが使用されています。デフォルトとして選択した形式に関係なく、常にoutput
パラメータでデフォルトの出力をオーバーライドできます。
JSON(Javaオブジェクト表記法)

JSONC(コメント\着色付きJavaオブジェクト表記法)

テーブル

TSV(タブ区切り値)

YAML(YAMLはマークアップ言語ではありません)

YAMLC(コメント\着色付きYAML)

なし–Azure CLIはエラーまたは警告のみを返します。
4. 出力形式を設定したら、Azure CLIはログを有効にするように求めます。ここで、すべてのコマンドと出力をファイルに記録するには、Y
を選択します。

ここでY
を選択すると、CLIを使用して収集されたすべてのコマンドと出力を含むログが作成されます。このログはLinuxおよびmacOSでは$HOME/.azure/logsディレクトリに、Windowsでは%USERPROFILE%\.azure\logsにあります。
以下に、ログの例を示します。

az login
5. 次に、Azure CLIはテレメトリデータの送信を求めます。ここでY
を選択すると、Azure CLIの使用方法に関する匿名情報がMicrosoftに送信されます。

Microsoftが収集する情報に関する詳細は、Azure CLIから匿名データの収集に関するMicrosoftのプライバシー情報を参照してください。
最後に、az configure
を使用してCLIオブジェクトのキャッシュの有効期限値を設定するように求められます。これはデフォルトの値である10のままにしておく必要があります。

Azure CLIのトラブルシューティング時にMicrosoftからアドバイスされた場合を除き、CLIオブジェクトのTTLを変更しないでください。
デフォルトパラメータ値の設定
Azure CLIには、場所やグループなどの同じパラメータを持つさまざまなコマンドがあります。これらのパラメータの値を毎回毎回入力する代わりに、デフォルトのパラメータ値を設定できます。
パラメータのデフォルト値を設定するには、az configure
で--defaults
パラメータを使用します。このパラメータを使用すると、パラメータとそのデフォルト値を定義できます。たとえば、さまざまなコマンドでlocation
やgroup
を入力するのが面倒であれば、問題ありません。いくつかのデフォルト値を設定します。
次の例では、デフォルトのリージョン(location
)をwestus2
、リソースグループ(group
)をMyResourceGroup
に設定しています。これで、location
やgroup
パラメータを持つ任意のAzure CLIコマンドを実行すると、Azure CLIがこれらのパラメータに自動的に値を渡します。
コンテナを使用している場合、各コンテナインスタンスでデフォルトを設定することで、特定の地域、サブスクリプション、またはリソースグループを管理することができます。上記のコマンドを使用して、デフォルトの地域とデフォルトのリソースグループを設定するために、各コンテナに4つのコンテナを作成することができます。
ブラウザでの認証
Azure CLIの基本を学びましたが、実際には何も行っていません。さて、リソースの作成に進む前に、az login
コマンドを使用してAzureにログインする必要があります。
複数のAzureサブスクリプションを持っている場合は、
az account list
コマンドを実行してすべてのサブスクリプションを見つけます。サブスクリプションを見つけたら、az account set --subscription <subscription name>
コマンドを実行してセッションで使用するサブスクリプションを設定します。グローバルなsubscription
パラメータを使用して明示的にサブスクリプションを指定することもできます。
1. ターミナルを開き、az login
コマンドを実行します。このコマンドはブラウザウィンドウを開き、ユーザー名とパスワードを入力するページに移動します。

2. Azureアカウントの資格情報を入力するか、以下に示す既存のユーザーアカウントをクリックします。

3. Azureがアカウントを認証したら、Webブラウザを閉じてAzure CLIセッションに戻ります。 az login
コマンドは、認証トークンを持っていることを確認するために、サブスクリプションに関する情報を返します。

デバイスコードを使用した認証
もしブラウザのないシステムで認証トークンをダウンロードしたい場合、または別のコンピュータで認証トークンを取得したい場合は、--use-device-code
パラメータを使用してください。このパラメータを使用すると、ユーザーは別のデバイスから提供されたコードを使用して認証できます。
デバイスコードを使用して認証するには、ターミナルを開いて次の手順を実行してください:
az login
コマンドを--use-device-code
パラメータを使用して実行します。この時、az login
コマンドはブラウザを開かず、代わりに別のコンピュータのデバイスログインページに提供するコードを表示します。

2. 別のコンピュータで、異なるURLに移動してhttps://microsoft.com/deviceloginにアクセスし、提供されたコードを貼り付け、次へをクリックします。

3. これでAzureに認証するために資格情報を入力し、必要でなければブラウザを閉じます。

Azure CLIセッションで、az login
はサブスクリプション情報を返します。

Azure CLIの出力オプション
前述の通り、Azure CLIはさまざまな方法で出力を返すことができます。デフォルトの出力を定義し、output
パラメータを使用して即座に変更できます。ただし、output
パラメータは出力の動作を変更する唯一のパラメータではありません。
冗長性を変更したり、出力をフィルタリングしたり、エラー出力の動作を変更したりするには、次のパラメータを使用してください。
query
– すべてのコマンドの出力をフィルタリングするためにJMESPathクエリ言語を使用します。詳細はthis articleを参照してください。verbose
– Azureで作成されたリソースに関する情報とそれらのリソースについての詳細な情報を返します。debug
– デバッグ用に使用されるCLI操作に関する低レベルな情報を返します。only-show-errors
– エラーを表示し、警告を抑制します。
リソースグループの作成
Azureに認証されたので、許可されたすべてのリソースを管理できるようになりました。まず、リソースグループの作成の一般的な例を実行しましょう。
Azure CLIがインストールされたコンピューターで、CLIでAzureにすでに認証されていると仮定します:
以下に示すように、az group create
コマンドを使用してリソースグループを作成します。このコマンドは、North Europe location
でTESTGrpという名前のresource-group
を作成し、すべてのverbose
出力を返します。

2. Azureがリソースを作成したことを確認します。az group list
TESTGrpリソースグループが作成されたことに気付きます。

3. たくさんのリソースグループを選別する必要があるかもしれません。スクロールする代わりに、query
パラメータを使用してリストを絞り込んでください。以下のコマンドは、JMESPathを使用して北ヨーロッパのlocation
にあるリソースグループのみを返します。

Linux仮想マシンの作成
最後の例では、Azure CLIを使用してAzure VMを作成する方法を学びます。仮想マシンの作成とその周りの設定を学ぶことは良いスキルです。Azure VMの作成は、クラウドの旅の中で繰り返し実行する可能性のある一般的なタスクです。
この演習では、デフォルトの設定でAzure Linux VMを作成し、前のセクションで作成したリソースグループに展開します。
Azure VMは、ディスクイメージ、仮想ネットワークアダプター、仮想マシンなど、すべてが一緒に動作する多くのAzureリソースで構成されています。
Azure CLIを使用してAzure VMを作成するには:
1. az vm image list
コマンドを実行して、VMのすべての利用可能なVMイメージを検索します。このコマンドは、すべてのキャッシュ/オフラインイメージを返します。az vm image list
このデモでは、以下で強調されているUbuntuLTS
イメージを選択してください。

Azure CLIは、すべてのVMイメージのキャッシュされたリストを維持します。UbuntuLTSイメージが表示されない場合は、
all
パラメータを使用して更新されたリストを取得してください。
2. VM に使用するディスクイメージがわかったら、az vm create
を使用して VM を作成します。以下のコードスニペットは、UbuntuLTS image
を使用して resource-group
TESTGrp で VM name
を ATAVM1 として作成します。Azure が VM を作成すると、後で接続するための SSH キー (generate-ssh-keys
) を生成し、JSON (output
) で出力します。
1 つの長い Azure CLI コマンドを、末尾にバックスラッシュを使用して複数行に分割します。
az vm create
コマンドには、VM を構築するためのさらに多くの方法があります。ヘルプシステムはあなたの味方です!az vm create --help
コマンドが正常に開始された場合、次のスクリーンショットと同様のものが表示されます。

verbose
パラメーターを使用することで、緑色で使用される実際の REST API メソッドとパラメーターが表示されます。
3. デプロイメントが完了すると、出力の最後のセクションに VM の情報が表示されます。このデモでは特に、パブリック IP アドレスをコピーします。これはインターネット経由で VM に接続するために必要です。

以下は、今の時点で、上記で見つけたUbuntu VMのパブリックIPアドレスを使用してSSH経由でUbuntu VMに接続します。これを行うには、お気に入りのSSHクライアントを開き、以下に示すようにユーザーazureuserとしてVMに接続します。デフォルトでは、az vm create
コマンドはazureuserというローカルユーザーを作成します。

VMを作成する際に
generate-ssh-keys
パラメータを使用したため、パスワードなしでVMにSSHできました。これにより、秘密鍵が~/.sshディレクトリにダウンロードされ、パブリックキーがVMにアップロードされ、認証できるようになります。
5. 今、VMとリソースグループをクリーンアップします。
次のステップ
Azure CLIの準備が整いました。これでリソースの管理ができる準備が整いました!次は何をしますか?