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 createARMテンプレートまたは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 stopVMを停止します(シャットダウン)。課金は継続します。--resource-group (-g) (必須)
--name (-n) (必須)
az vm deallocateVMを停止し、コンピューティングリソースの割り当てを解除します。課金が停止します。--resource-group (-g) (必須)
--name (-n) (必須)
az vm restartVMを再起動します。--resource-group (-g) (必須)
--name (-n) (必須)
az vm deleteVMを削除します。⚠️ ディスクやNICが同時に削除されるかはオプションによります。--resource-group (-g) (必須)
--name (-n) (必須)
--yes (-y): 確認をスキップ
az vm list-sizes指定した場所で利用可能なVMサイズを一覧表示します。--location (-l) (必須)
az vm list-ip-addressesVMに割り当てられているIPアドレスを一覧表示します。--resource-group (-g) (必須)
--name (-n) (必須)
az vm open-portVMのネットワークセキュリティグループ(NSG)でポートを開放します。--resource-group (-g) (必須)
--name (-n) (必須)
--port: ポート番号または範囲 (例: 80, 22)
az vm extension setVMに拡張機能を追加または更新します。--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 detachVMから管理ディスクをデタッチします。--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 createBlobストレージコンテナを作成します。--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 downloadBlobをファイルとしてダウンロードします。--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 listVNet内のサブネットを一覧表示します。-g (必須), --vnet-name (必須)
az network nsg createネットワークセキュリティグループ (NSG) を作成します。-g (必須), -n (必須), -l (必須)
az network nsg rule createNSGにセキュリティルールを追加します。-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 listNSGのルールを一覧表示します。-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 createApp Service プランを作成します。-g (必須), -n (必須), -l (必須)
--sku: SKU (例: F1, B1, S1, P1V2)
--is-linux: Linuxプランの場合に指定
az appservice plan listApp Service プランを一覧表示します。-g
az appservice plan updateApp 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 listWebアプリを一覧表示します。-g
az webapp config setWebアプリの構成(環境変数、スタートアップコマンドなど)を設定します。-g (必須), -n (必須)
--startup-file: スタートアップファイル/コマンド
--generic-configurations: 一般構成
az webapp config appsettings setWebアプリのアプリケーション設定(環境変数)を追加・更新します。-g (必須), -n (必須)
--settings: キー=値 のペア (例: key1=value1 key2=value2)
az webapp deployment source config-zipZIPファイルを使用してWebアプリにコードをデプロイします。-g (必須), -n (必須)
--src: ZIPファイルへのパス (必須)
az webapp log tailWebアプリのライブログストリーミングを表示します。-g (必須), -n (必須)
az webapp restartWebアプリを再起動します。-g (必須), -n (必須)
az webapp deleteWebアプリを削除します。⚠️-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 createAzure Container Registry (ACR) を作成します。-g (必須), -n (必須), -l (必須)
--sku (Basic, Standard, Premium)
--admin-enabled (true/false)
az acr loginローカルのDocker CLIからACRにログインします。-n (必須)
az acr buildACR Tasksを使用してコンテナイメージをビルド・プッシュします。-r (レジストリ名)
-t (イメージ名:タグ)
. (ソースコードのコンテキスト)
az acr repository listACR内のリポジトリを一覧表示します。-n (必須)
az aks createAzure Kubernetes Service (AKS) クラスターを作成します。-g (必須), -n (必須)
--node-count: ノード数
--node-vm-size: ノードVMサイズ
--generate-ssh-keys
az aks get-credentialsAKSクラスターへの接続に必要なkubectl構成を取得・マージします。-g (必須), -n (必須)
--admin: 管理者資格情報を取得
--file: 出力先ファイル (デフォルトは ~/.kube/config)
az aks nodepool addAKSクラスターにノードプールを追加します。-g (必須), --cluster-name (必須)
-n (ノードプール名)
--node-count
--node-vm-size
az aks scaleAKSクラスターのノード数をスケールします。-g (必須), -n (必須)
--node-count (必須)
az aks deleteAKSクラスターを削除します。⚠️-g (必須), -n (必須)
--yes (-y)
az container createAzure Container Instances (ACI) でコンテナを作成・起動します。-g (必須)
--name (必須)
--image (必須)
--dns-name-label: DNS名ラベル
--ports: 公開するポート
--cpu, --memory
az container logsACIコンテナのログを表示します。-g (必須), --name (必須)
az container deleteACIコンテナを削除します。⚠️-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 createAzure SQL Database サーバーを作成します。-g (必須), -n (必須), -l (必須)
--admin-user (必須)
--admin-password (必須)
az sql db createAzure SQL Database を作成します。-g (必須), -s (サーバー名, 必須), -n (DB名, 必須)
--edition (Basic, Standard, Premium)
--service-objective (例: S0, P1)
--compute-model (Provisioned/Serverless)
az sql server firewall-rule createSQLサーバーのファイアウォールルールを作成します。-g (必須), -s (必須), -n (ルール名, 必須)
--start-ip-address (必須)
--end-ip-address (必須)
az sql db updateSQL Databaseの設定(エディション、サイズなど)を更新します。-g (必須), -s (必須), -n (必須)
--edition, --service-objective, --max-size
az cosmosdb createAzure Cosmos DB アカウントを作成します。-g (必須), -n (必須)
--locations: リージョン情報
--capabilities: APIの種類 (例: Sql, MongoDB, Cassandra)
az cosmosdb sql database createCosmos DB (SQL API) アカウント内にデータベースを作成します。-g (必須), -a (アカウント名, 必須), -n (DB名, 必須)
az cosmosdb sql container createCosmos DB (SQL API) データベース内にコンテナ(コレクション)を作成します。-g (必須), -a (必須), -d (DB名, 必須), -n (コンテナ名, 必須)
--partition-key-path (必須)
az postgres flexible-server createAzure Database for PostgreSQL フレキシブルサーバーを作成します。-g, -n, -l
--admin-user, --admin-password
--sku-name, --storage-size
az mysql flexible-server createAzure 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 (出力なし)
--queryJMESPathクエリ言語を使用して、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をコピーしました