AzureCLI では1つのサブスクリプションに対する操作しか対応していません。
なので複数のサブスクリプションを利用している場合には、ログイン後にデフォルトで選択されるサブスクリプションがリソースを作成したいサブスクリプションなのかを気にする必要があります。
今回はAzureCLI でサブスクリプションを変更してみました。
1.AzureCLIでサブスクリプションを変更する
az account setで変更可能です。
az account set はIDを指定する方法とサブスクリプション名を指定する方法の2つがあります。
1-1. az account set
# サブスクリプションIDを指定
az account set -s "12345678-1234-1234-1234-123456789012"
# サブスクリプション名を指定
az account set -n "TestSub02"
1-2.実行結果
実際に変更する際にはコマンド実行の前後で現在のサブスクリプションを確認したほうがいいです。
今回は、az account set のサブスクリプション名を指定して実行してみます。
①現在のサブスクリプションを確認する(az account show)
PS C:\> az account show
{
"environmentName": "AzureCloud",
"homeTenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"isDefault": true,
"managedByTenants": [],
"name": "TestSub01",
"state": "Enabled",
"tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"user": {
"name": "xxxxxxx@xxxxxxx.onmicrosoft.com",
"type": "user"
}
}
PS C:\>
②サブスクリプションを変更する(az account set)
サブスクリプション名やIDの取得方法は下部の[参考] サブスクリプション情報の確認方法を参照ください。
PS C:\> az account set -n "TestSub02"
PS C:\>
実行しても出力は何も出ません。
③変更されたかを確認する(az account show)
TestSub02に変わっていることが分かりました。
PS C:\> az account show
{
"environmentName": "AzureCloud",
"homeTenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"isDefault": true,
"managedByTenants": [],
"name": "TestSub02",
"state": "Enabled",
"tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"user": {
"name": "xxxxxxx@xxxxxxx.onmicrosoft.com",
"type": "user"
}
}
PS C:\>
これでサブスクリプションの変更は完了です。
2.すべてのサブスクリプション情報の確認方法
以下のコマンドで全てのサブスクリプションの情報を取得することができます。
az account list
出力としては以下のような形になります。
[isDefault] の項目が [true] になっているサブスクリプションが現状選択されているサブスクリプションです。
C:\>az account list
[
{
"cloudName": "AzureCloud",
"homeTenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"id": "yyyyyyyy-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"isDefault": true,
"managedByTenants": [],
"name": "TestSub01",
"state": "Enabled",
"tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"user": {
"name": "xxxxxxx@xxxxxxx.onmicrosoft.com",
"type": "user"
}
},
{
"cloudName": "AzureCloud",
"homeTenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"id": "zzzzzzzz-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"isDefault": false,
"managedByTenants": [],
"name": "TestSub02",
"state": "Enabled",
"tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"user": {
"name": "xxxxxxx@xxxxxxx.onmicrosoft.com",
"type": "user"
}
}
]
C:\>
似たようなコマンドとして [az account show] もありますが、これは現状選択されているサブスクリプションの情報を表示するコマンドになります。
なので、変更したいサブスクリプションの情報を確認するためには [az account list] を利用する必要があるので使い分けに少し注意が必要です。
[参考] ログイン・ログアウトする
AzureCLIでログインとログアウトするコマンドは以下です。
ログイン(az login)
az login
ログアウト(az logout)
az logout