AzurePowerShell では1つのサブスクリプションが選択された状態での操作しか対応していません。
なので複数のサブスクリプションを利用している場合には、ログイン後にデフォルトで選択されるサブスクリプションがリソースを作成したいサブスクリプションなのかを気にする必要があります。
今回はAzurePowerShellでサブスクリプションの変更コマンドを実際に試してみました。
1.サブスクリプションの変更方法
Set-AzContext もしくは、Select-AzSubscription で変更可能です。
Set-AzContext についてはIDを指定する方法とサブスクリプション名を指定する方法の2つがあります。
1-1. az account set
# サブスクリプションIDを指定
Set-AzContext -Subscription "12345678-1234-1234-1234-123456789012"
# サブスクリプション名を指定
Set-AzContext -Subscription "TestSub02"
1-2. Select-AzSubscription
# サブスクリプションIDを指定
Select-AzSubscription -SubscriptionId "12345678-1234-1234-1234-123456789012"
1-3.実行結果
実際に変更する際にはコマンド実行の前後で現在のサブスクリプションを確認したほうがいいです。
①現状のサブスクリプションを確認する(Get-AzContext)
PS C:\> Get-AzContext
Name Account SubscriptionName Environment TenantId
---- ------- ---------------- ----------- --------
TestSub01 (xxxxxxxx-xxxx-xxxx-xxxx-xx... hogehoge@xxxx... TestSub01 AzureCloud xxxxxxxx-xxxx-x...
PS C:\>
②サブスクリプションを変更する(Set-AzContext)
サブスクリプション名やIDの取得方法は下部のサブスクリプション情報の確認方法を参照ください。
PS C:\> Set-AzContext -Subscription "TestSub02"
Name Account SubscriptionName Environment TenantId
---- ------- ---------------- ----------- --------
TestSub02 (xxxxxxxx-xxxx-xxxx-xxxx-xx... hogehoge@xxxx... TestSub02 AzureCloud xxxxxxxx-xxxx-x...
PS C:\>
実行後に変更されたサブスクリプションの情報が表示されます。
③変更されたかを確認する(Get-AzContext)
上記でも表示されていますが改めて別のコマンドで確認します。
PS C:\> Get-AzContext
Name Account SubscriptionName Environment TenantId
---- ------- ---------------- ----------- --------
TestSub02 (xxxxxxxx-xxxx-xxxx-xxxx-xx... hogehoge@xxxx... TestSub02 AzureCloud xxxxxxxx-xxxx-x...
PS C:\>
これでサブスクリプションの変更は完了です。
2.サブスクリプション情報の確認方法
以下のコマンドで全てのサブスクリプションの情報を取得することができます。
Get-AzSubscription
出力としては以下のような形になります。
PS C:\> Get-AzSubscription
Name Id TenantId State
---- -- -------- -----
TestSub02 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx xxxxxxxx-xxxx-xxxx-zzzz-xxxxxxxxxxxx Enabled
TestSub01 yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy xxxxxxxx-xxxx-xxxx-zzzz-xxxxxxxxxxxx Enabled
PS C:\>
同じようなコマンドとして [Get-AzContext] もありますが、これは現状選択されているサブスクリプションの情報を表示するコマンドになります。
なので、変更したいサブスクリプションの情報を確認するためには [Get-AzSubscription] を利用する必要があるので使い分けに少し注意が必要です。
[参考] ログイン・ログアウトする
AzurePowershellでログインとログアウトするコマンドは以下です。
ログイン(Connect-AzAccount)
Connect-AzAccount
ログアウト(Disconnect-AzAccount)
Disconnect-AzAccount