az (Azure CLI)コマンド チートシート

cheatsheet

Azureリソースを管理するための主要なazコマンド集

Azure CLIを使用するための最初のステップです。

コマンド 説明 備考
az login 対話形式でAzureにログインします。通常、ブラウザが開き認証を求められます。
az login --use-device-code デバイスコードを使用してログインします。ブラウザが自動で開かない環境 (SSH接続先など) で便利です。 表示されたコードを https://microsoft.com/devicelogin に入力します。
az login --service-principal -u <APP_ID> -p <PASSWORD> --tenant <TENANT_ID> サービスプリンシパルを使用してログインします。自動化スクリプトなどで使用します。 <APP_ID>, <PASSWORD>, <TENANT_ID> を置き換えてください。
az login --identity システム割り当てマネージドIDを使用してログインします。Azure VMなど、マネージドIDが有効なリソース内で使用します。
az login --identity -u <USER_ASSIGNED_IDENTITY_CLIENT_ID> ユーザー割り当てマネージドIDを使用してログインします。 <USER_ASSIGNED_IDENTITY_CLIENT_ID> を置き換えてください。
az account list アクセス可能なサブスクリプションの一覧を表示します。 -o table を付けるとテーブル形式で見やすくなります。
az account show 現在アクティブなサブスクリプションの詳細を表示します。
az account set --subscription <SUBSCRIPTION_ID_OR_NAME> 操作対象のデフォルトサブスクリプションを切り替えます。 IDまたはサブスクリプション名を指定します。
az account clear ローカルにキャッシュされているログイン情報をクリアします。 再ログインが必要になります。
az account tenant list アクセス可能なテナントの一覧を表示します。
az configure 対話形式でAzure CLIのデフォルト設定(出力形式、場所、リソースグループなど)を行います。
az configure --defaults group=<RESOURCE_GROUP_NAME> location=<LOCATION> デフォルトのリソースグループや場所を設定します。 コマンド実行時の --resource-group--location の省略が可能になります。

📦 リソースグループ管理 (az group)

Azureリソースのコンテナであるリソースグループを管理します。

コマンド 説明 主なオプション
az group create 新しいリソースグループを作成します。 --name (-n): リソースグループ名 (必須)
--location (-l): 場所 (例: japaneast) (必須)
az group list サブスクリプション内のリソースグループを一覧表示します。 --output (-o): 出力形式 (例: table)
az group show 特定のリソースグループの詳細を表示します。 --name (-n): リソースグループ名 (必須)
az group update リソースグループのプロパティ(タグなど)を更新します。 --name (-n): リソースグループ名 (必須)
--tags: タグ (例: key=value)
az group delete リソースグループとその中のすべてのリソースを削除します。⚠️ 注意して実行してください。 --name (-n): リソースグループ名 (必須)
--yes (-y): 確認プロンプトをスキップ
az group exists リソースグループが存在するかどうかを確認します (true/false)。 --name (-n): リソースグループ名 (必須)
az group deployment create ARMテンプレートまたはBicepファイルを使用してリソースをデプロイします。 --name (-n): デプロイ名
--resource-group (-g): 対象リソースグループ名
--template-file: テンプレートファイルへのパス
--parameters: パラメータファイルまたはキーと値
az resource list リソースグループ内のリソースを一覧表示します。 --resource-group (-g): 対象リソースグループ名

使用例

# 新しいリソースグループを作成
az group create --name MyResourceGroup --location japaneast

# リソースグループ一覧をテーブル形式で表示
az group list -o table

# 特定のリソースグループを削除 (確認あり)
# az group delete --name MyResourceGroup

# リソースグループを削除 (確認なし)
# az group delete --name MyResourceGroup --yes

🖥️ 仮想マシン (VM) 管理 (az vm)

LinuxおよびWindows仮想マシンを作成、管理します。

コマンド 説明 主なオプション
az vm create 新しい仮想マシンを作成します。 --resource-group (-g) (必須)
--name (-n) (必須)
--image: OSイメージ (例: UbuntuLTS, Win2019Datacenter)
--admin-username: 管理者ユーザー名
--admin-password: パスワード (または --generate-ssh-keys)
--location (-l): 場所
--size: VMサイズ (例: Standard_B1s)
--nics: 既存のNICを指定
--public-ip-address: 既存のパブリックIPを指定
--vnet-name, --subnet: 仮想ネットワークを指定
az vm list リソースグループまたはサブスクリプション内のVMを一覧表示します。 --resource-group (-g)
--show-details (-d): 詳細情報を表示 (電源状態など)
az vm show 特定のVMの詳細を表示します。 --resource-group (-g) (必須)
--name (-n) (必須)
--show-details (-d)
az vm start 停止しているVMを起動します。 --resource-group (-g) (必須)
--name (-n) (必須)
az vm stop VMを停止します(シャットダウン)。課金は継続します。 --resource-group (-g) (必須)
--name (-n) (必須)
az vm deallocate VMを停止し、コンピューティングリソースの割り当てを解除します。課金が停止します。 --resource-group (-g) (必須)
--name (-n) (必須)
az vm restart VMを再起動します。 --resource-group (-g) (必須)
--name (-n) (必須)
az vm delete VMを削除します。⚠️ ディスクやNICが同時に削除されるかはオプションによります。 --resource-group (-g) (必須)
--name (-n) (必須)
--yes (-y): 確認をスキップ
az vm list-sizes 指定した場所で利用可能なVMサイズを一覧表示します。 --location (-l) (必須)
az vm list-ip-addresses VMに割り当てられているIPアドレスを一覧表示します。 --resource-group (-g) (必須)
--name (-n) (必須)
az vm open-port VMのネットワークセキュリティグループ(NSG)でポートを開放します。 --resource-group (-g) (必須)
--name (-n) (必須)
--port: ポート番号または範囲 (例: 80, 22)
az vm extension set VMに拡張機能を追加または更新します。 --resource-group (-g)
--vm-name
--name (拡張機能名)
--publisher
--settings (JSON設定)
az vm disk attach 既存の管理ディスクをVMにアタッチします。 --resource-group (-g)
--vm-name
--disk (ディスク名またはID)
--lun (論理ユニット番号)
az vm disk detach VMから管理ディスクをデタッチします。 --resource-group (-g)
--vm-name
--name (ディスク名)

使用例

# Ubuntu VMを作成 (SSHキーは自動生成)
az vm create \
  --resource-group MyResourceGroup \
  --name MyVM \
  --image UbuntuLTS \
  --size Standard_B1s \
  --admin-username azureuser \
  --generate-ssh-keys

# VMの一覧と状態を表示
az vm list -g MyResourceGroup -d -o table

# VMを停止して割り当て解除
az vm deallocate -g MyResourceGroup -n MyVM

# VMを起動
az vm start -g MyResourceGroup -n MyVM

💾 ストレージアカウント管理 (az storage)

Blob、File、Queue、Tableストレージを含むストレージアカウントを管理します。

コマンド 説明 主なオプション
az storage account create 新しいストレージアカウントを作成します。 --name (-n) (必須)
--resource-group (-g) (必須)
--location (-l) (必須)
--sku: SKU (例: Standard_LRS, Premium_LRS)
--kind: アカウントの種類 (例: StorageV2, BlobStorage)
az storage account list ストレージアカウントを一覧表示します。 --resource-group (-g)
az storage account show 特定のストレージアカウントの詳細を表示します。 --name (-n) または --ids
az storage account delete ストレージアカウントを削除します。⚠️ --name (-n) (必須)
--resource-group (-g) (必須)
--yes (-y)
az storage account keys list ストレージアカウントのアクセスキーを表示します。 --account-name (必須)
--resource-group (-g) (必須)
az storage account keys renew ストレージアカウントのアクセスキーを再生成します。 --account-name (必須)
--resource-group (-g) (必須)
--key: 再生成するキー (primary/secondary)
az storage container create Blobストレージコンテナを作成します。 --account-name
--name (-n) (必須)
--auth-mode (login/key)
--account-key (key認証時)
az storage blob list コンテナ内のBlobを一覧表示します。 --account-name
--container-name (-c) (必須)
--auth-mode
--account-key
az storage blob upload ファイルをBlobとしてアップロードします。 --account-name
--container-name (-c) (必須)
--name (-n): Blob名 (必須)
--file (-f): アップロードするファイルパス (必須)
--auth-mode
--account-key
az storage blob download Blobをファイルとしてダウンロードします。 --account-name
--container-name (-c) (必須)
--name (-n): Blob名 (必須)
--file (-f): ダウンロード先のファイルパス (必須)
--auth-mode
--account-key
az storage share create ファイル共有を作成します。 --account-name
--name (-n) (必須)
--quota: クォータ(GiB)
az storage file upload ファイルをファイル共有にアップロードします。 --account-name
--share-name (-s) (必須)
--source: アップロード元ファイルパス (必須)
--path: アップロード先パス (省略可)

使用例

# Standard_LRS SKUでストレージアカウントを作成
az storage account create \
  --name mystorageaccount$RANDOM \
  --resource-group MyResourceGroup \
  --location japaneast \
  --sku Standard_LRS

# ストレージアカウントのキーを取得 (例: 最初のキー)
STORAGE_KEY=$(az storage account keys list \
  --resource-group MyResourceGroup \
  --account-name <ストレージアカウント名> \
  --query "[0].value" -o tsv)

# 'mycontainer' という名前のコンテナを作成 (キー認証)
az storage container create \
  --account-name <ストレージアカウント名> \
  --name mycontainer \
  --account-key $STORAGE_KEY

# 'myfile.txt' を 'mycontainer' に 'myblob.txt' としてアップロード
# echo "Hello Azure" > myfile.txt
# az storage blob upload \
#   --account-name <ストレージアカウント名> \
#   --container-name mycontainer \
#   --name myblob.txt \
#   --file myfile.txt \
#   --account-key $STORAGE_KEY

🌐 ネットワーク管理 (az network)

仮想ネットワーク (VNet)、サブネット、ネットワークセキュリティグループ (NSG)、パブリックIPアドレスなどを管理します。

コマンド 説明 主なオプション
az network vnet create 仮想ネットワークを作成します。 -g (必須), -n (必須), -l (必須)
--address-prefixes: アドレス空間 (例: 10.0.0.0/16)
--subnet-name: 同時に作成するサブネット名
--subnet-prefix: サブネットのアドレスプレフィックス
az network vnet list 仮想ネットワークを一覧表示します。 -g
az network vnet subnet create 既存のVNet内にサブネットを作成します。 -g (必須), --vnet-name (必須), -n (必須)
--address-prefixes (必須)
az network vnet subnet list VNet内のサブネットを一覧表示します。 -g (必須), --vnet-name (必須)
az network nsg create ネットワークセキュリティグループ (NSG) を作成します。 -g (必須), -n (必須), -l (必須)
az network nsg rule create NSGにセキュリティルールを追加します。 -g (必須), --nsg-name (必須), -n (必須)
--priority (必須)
--protocol (Tcp, Udp, Icmp, *)
--direction (Inbound/Outbound)
--access (Allow/Deny)
--source-address-prefixes
--destination-address-prefixes
--destination-port-ranges
az network nsg rule list NSGのルールを一覧表示します。 -g (必須), --nsg-name (必須)
az network public-ip create パブリックIPアドレスを作成します。 -g (必須), -n (必須), -l (必須)
--allocation-method (Static/Dynamic)
--sku (Basic/Standard)
az network public-ip list パブリックIPアドレスを一覧表示します。 -g
az network nic create ネットワークインターフェース (NIC) を作成します。 -g (必須), -n (必須), -l (必須)
--vnet-name, --subnet (必須)
--network-security-group: 関連付けるNSG
--public-ip-address: 関連付けるパブリックIP
az network lb create ロードバランサーを作成します。 -g (必須), -n (必須), -l (必須)
--sku (Basic/Standard)
--public-ip-address (Public LBの場合)
--frontend-ip-name

使用例

# 仮想ネットワークとサブネットを作成
az network vnet create \
  -g MyResourceGroup -n MyVNet -l japaneast \
  --address-prefixes 10.1.0.0/16 \
  --subnet-name MySubnet --subnet-prefix 10.1.0.0/24

# NSGを作成
az network nsg create -g MyResourceGroup -n MyNSG -l japaneast

# SSH (ポート22) を許可する受信規則をNSGに追加
az network nsg rule create \
  -g MyResourceGroup --nsg-name MyNSG -n AllowSSH \
  --priority 100 --protocol Tcp --direction Inbound \
  --access Allow --source-address-prefixes '*' \
  --destination-address-prefixes '*' --destination-port-ranges 22

# 静的なStandard SKUのパブリックIPを作成
az network public-ip create \
  -g MyResourceGroup -n MyPublicIP -l japaneast \
  --allocation-method Static --sku Standard

🌐 App Service管理 (az webapp, az appservice plan)

Webアプリ、APIアプリ、モバイルバックエンドをホストするためのApp Serviceとプランを管理します。

コマンド 説明 主なオプション
az appservice plan create App Service プランを作成します。 -g (必須), -n (必須), -l (必須)
--sku: SKU (例: F1, B1, S1, P1V2)
--is-linux: Linuxプランの場合に指定
az appservice plan list App Service プランを一覧表示します。 -g
az appservice plan update App Service プランを更新します (SKUの変更など)。 -g (必須), -n (必須)
--sku: 新しいSKU
az webapp create 新しいWebアプリを作成します。 -g (必須), -n (必須)
--plan: App Service プラン名 (必須)
--runtime: ランタイム (例: “DOTNETCORE|6.0”, “NODE|16-lts”, “PYTHON|3.9”)
az webapp list Webアプリを一覧表示します。 -g
az webapp config set Webアプリの構成(環境変数、スタートアップコマンドなど)を設定します。 -g (必須), -n (必須)
--startup-file: スタートアップファイル/コマンド
--generic-configurations: 一般構成
az webapp config appsettings set Webアプリのアプリケーション設定(環境変数)を追加・更新します。 -g (必須), -n (必須)
--settings: キー=値 のペア (例: key1=value1 key2=value2)
az webapp deployment source config-zip ZIPファイルを使用してWebアプリにコードをデプロイします。 -g (必須), -n (必須)
--src: ZIPファイルへのパス (必須)
az webapp log tail Webアプリのライブログストリーミングを表示します。 -g (必須), -n (必須)
az webapp restart Webアプリを再起動します。 -g (必須), -n (必須)
az webapp delete Webアプリを削除します。⚠️ -g (必須), -n (必須)

使用例

# Linux用のFreeプランを作成
az appservice plan create -g MyResourceGroup -n MyLinuxPlan -l japaneast --is-linux --sku F1

# Node.js 16 LTSランタイムでLinux Webアプリを作成
az webapp create -g MyResourceGroup -n MyUniqueWebAppName -p MyLinuxPlan --runtime "NODE|16-lts"

# アプリケーション設定を追加
az webapp config appsettings set -g MyResourceGroup -n MyUniqueWebAppName --settings MySetting=MyValue ANOTHER_SETTING="Value with spaces"

# ZIPファイルでデプロイ (事前に app.zip を作成しておく)
# az webapp deployment source config-zip -g MyResourceGroup -n MyUniqueWebAppName --src app.zip

🚢 コンテナ管理 (az acr, az aks, az container)

Azure Container Registry (ACR), Azure Kubernetes Service (AKS), Azure Container Instances (ACI) を管理します。

コマンド 説明 主なオプション
az acr create Azure Container Registry (ACR) を作成します。 -g (必須), -n (必須), -l (必須)
--sku (Basic, Standard, Premium)
--admin-enabled (true/false)
az acr login ローカルのDocker CLIからACRにログインします。 -n (必須)
az acr build ACR Tasksを使用してコンテナイメージをビルド・プッシュします。 -r (レジストリ名)
-t (イメージ名:タグ)
. (ソースコードのコンテキスト)
az acr repository list ACR内のリポジトリを一覧表示します。 -n (必須)
az aks create Azure Kubernetes Service (AKS) クラスターを作成します。 -g (必須), -n (必須)
--node-count: ノード数
--node-vm-size: ノードVMサイズ
--generate-ssh-keys
az aks get-credentials AKSクラスターへの接続に必要なkubectl構成を取得・マージします。 -g (必須), -n (必須)
--admin: 管理者資格情報を取得
--file: 出力先ファイル (デフォルトは ~/.kube/config)
az aks nodepool add AKSクラスターにノードプールを追加します。 -g (必須), --cluster-name (必須)
-n (ノードプール名)
--node-count
--node-vm-size
az aks scale AKSクラスターのノード数をスケールします。 -g (必須), -n (必須)
--node-count (必須)
az aks delete AKSクラスターを削除します。⚠️ -g (必須), -n (必須)
--yes (-y)
az container create Azure Container Instances (ACI) でコンテナを作成・起動します。 -g (必須)
--name (必須)
--image (必須)
--dns-name-label: DNS名ラベル
--ports: 公開するポート
--cpu, --memory
az container logs ACIコンテナのログを表示します。 -g (必須), --name (必須)
az container delete ACIコンテナを削除します。⚠️ -g (必須), --name (必須)
--yes (-y)

使用例

# Standard SKUのACRを作成
az acr create -g MyResourceGroup -n myuniqueacrname -l japaneast --sku Standard

# ACRにDocker CLIでログイン
az acr login -n myuniqueacrname

# (Dockerイメージをビルドしてプッシュする例 - Dockerfileがあるディレクトリで実行)
# docker build -t myuniqueacrname.azurecr.io/myimage:v1 .
# docker push myuniqueacrname.azurecr.io/myimage:v1

# 2ノードのAKSクラスターを作成
az aks create -g MyResourceGroup -n MyAKSCluster --node-count 2 --generate-ssh-keys

# kubectlがAKSクラスターを操作できるように認証情報を取得
az aks get-credentials -g MyResourceGroup -n MyAKSCluster

# (kubectlコマンドを実行して確認)
# kubectl get nodes

# ACIでNginxコンテナを起動
az container create -g MyResourceGroup --name myacicontainer --image nginx --dns-name-label myuniqueacicontainer --ports 80

Azure SQL Database, Azure Cosmos DBなどのデータベースサービスを管理します。

コマンド 説明 主なオプション
az sql server create Azure SQL Database サーバーを作成します。 -g (必須), -n (必須), -l (必須)
--admin-user (必須)
--admin-password (必須)
az sql db create Azure SQL Database を作成します。 -g (必須), -s (サーバー名, 必須), -n (DB名, 必須)
--edition (Basic, Standard, Premium)
--service-objective (例: S0, P1)
--compute-model (Provisioned/Serverless)
az sql server firewall-rule create SQLサーバーのファイアウォールルールを作成します。 -g (必須), -s (必須), -n (ルール名, 必須)
--start-ip-address (必須)
--end-ip-address (必須)
az sql db update SQL Databaseの設定(エディション、サイズなど)を更新します。 -g (必須), -s (必須), -n (必須)
--edition, --service-objective, --max-size
az cosmosdb create Azure Cosmos DB アカウントを作成します。 -g (必須), -n (必須)
--locations: リージョン情報
--capabilities: APIの種類 (例: Sql, MongoDB, Cassandra)
az cosmosdb sql database create Cosmos DB (SQL API) アカウント内にデータベースを作成します。 -g (必須), -a (アカウント名, 必須), -n (DB名, 必須)
az cosmosdb sql container create Cosmos DB (SQL API) データベース内にコンテナ(コレクション)を作成します。 -g (必須), -a (必須), -d (DB名, 必須), -n (コンテナ名, 必須)
--partition-key-path (必須)
az postgres flexible-server create Azure Database for PostgreSQL フレキシブルサーバーを作成します。 -g, -n, -l
--admin-user, --admin-password
--sku-name, --storage-size
az mysql flexible-server create Azure Database for MySQL フレキシブルサーバーを作成します。 -g, -n, -l
--admin-user, --admin-password
--sku-name, --storage-size

使用例

# SQL Database サーバーを作成
az sql server create -g MyResourceGroup -n mysqlserver$RANDOM -l japaneast \
  --admin-user myadmin --admin-password 'ComplexP@ssw0rd!'

# 現在のクライアントIPを許可するファイアウォールルールを作成
az sql server firewall-rule create -g MyResourceGroup -s <サーバー名> -n AllowMyIP \
  --start-ip-address <あなたのIP> --end-ip-address <あなたのIP>

# Standard S0エディションでSQL Databaseを作成
az sql db create -g MyResourceGroup -s <サーバー名> -n MyDatabase \
  --edition Standard --service-objective S0

# Cosmos DB (SQL API) アカウントを作成
az cosmosdb create -g MyResourceGroup -n myuniquecosmosdb -l japaneast \
  --capabilities EnableSql

# Cosmos DBデータベースとコンテナを作成
az cosmosdb sql database create -g MyResourceGroup -a myuniquecosmosdb -n MyCosmosDB
az cosmosdb sql container create -g MyResourceGroup -a myuniquecosmosdb -d MyCosmosDB -n MyContainer --partition-key-path /myPartitionKey

🔍 クエリと出力形式

コマンドの出力を整形したり、特定の情報だけを抽出したりします。

オプション 説明 値/例
--output (-o) 出力形式を指定します。 json (デフォルト)
jsonc (色付きJSON)
table (人間が読みやすい表形式)
tsv (タブ区切り)
yaml
yamlc (色付きYAML)
none (出力なし)
--query JMESPathクエリ言語を使用して、JSON出力から特定のデータを抽出・整形します。 '[].name' (リスト内の全オブジェクトのnameプロパティ)
'[?location==`japaneast`].name' (locationがjapaneastのオブジェクトのname)
'{Name:name, Location:location}' (nameとlocationを抽出し、キー名を変更)
'length([])' (リストの要素数)

使用例

# VMの一覧をテーブル形式で表示
az vm list -o table

# VMの一覧から名前だけをTSV形式で表示
az vm list --query "[].name" -o tsv

# 特定のリソースグループにあるVMの名前とOSの種類をテーブル表示用に整形
az vm list -g MyResourceGroup --query "[].{Name:name, OSType:storageProfile.osDisk.osType}" -o table

# japaneastリージョンにあるリソースグループの名前一覧を取得
az group list --query "[?location=='japaneast'].name" -o tsv

JMESPathの詳細は JMESPath Tutorial を参照してください。

🤖 スクリプトと自動化のヒント

  • 変数を使う: シェル変数を使用して、繰り返し使う値(リソースグループ名、場所など)を格納します。
    RG_NAME="MyResourceGroup"
    LOCATION="japaneast"
    VM_NAME="MyVM"
    
    az group create -n $RG_NAME -l $LOCATION
    az vm create -g $RG_NAME -n $VM_NAME --image UbuntuLTS ... # 他のオプション
    
  • コマンドの結果を変数に格納する: --query-o tsv を使って特定の値を抽出し、シェルのコマンド置換($(...) や “` `…` “`)で変数に格納します。
    PUBLIC_IP=$(az vm show -g $RG_NAME -n $VM_NAME -d --query publicIps -o tsv)
    echo "VM Public IP: $PUBLIC_IP"
    
    STORAGE_KEY=$(az storage account keys list -g $RG_NAME -n mystorageaccount --query "[0].value" -o tsv)
    echo "Storage Key: $STORAGE_KEY"
    
  • ループ処理: 複数のリソースに対して同じ操作を行う場合に、シェルのループ構文 (for など) と組み合わせます。
    # リソースグループ内の全VMを停止する (例)
    VM_NAMES=$(az vm list -g $RG_NAME --query "[].name" -o tsv)
    for vm in $VM_NAMES; do
      echo "Stopping VM: $vm"
      az vm stop -g $RG_NAME -n $vm
      az vm deallocate -g $RG_NAME -n $vm
    done
    
  • 冪等性 (Idempotency): az ... create コマンドは、リソースが既に存在する場合でもエラーにならないことが多いです(設定が同じ場合)。スクリプトを何度実行しても同じ状態になるように意識します。存在確認が必要な場合は az ... showaz ... list --query を利用します。
  • エラーハンドリング: シェルの機能 (set -e など) を利用して、コマンドが失敗した場合にスクリプトを停止するようにします。
  • --yes (-y) オプション: 削除コマンドなどで確認プロンプトをスキップし、自動実行を可能にします。⚠️ 注意して使用してください。
  • az find コマンド: キーワードに関連するAzure CLIコマンドを検索するのに役立ちます。
    az find "create vm"
    az find "list storage accounts in resource group"
    

コメント

タイトルとURLをコピーしました