Azureの小ネタ (改)

~Azureネタを中心に、色々とその他の技術的なことなどを~

Azure PowerShell 1.0 Preview

Azure PowerShell 1.0 Preview がアナウンスされました。

azure.microsoft.com

Azure Resource Manager (ARM) による管理APIが追加され、それによって Switch-AzureMode にてARM<->ASMを切り替える実装になりましたが、同名で異なる動きをするコマンドが多く不評でした。そのような中、Switch-AzureModeの廃止が提案されたのですが、当初は ASM コマンドをリネームするとアナウンスされて、古いほうを変えて、既存のドキュメントとスクリプト資産をどうするんだと憤りましたが、結局はARMを変えることで落ち着きました。

Deprecation of Switch AzureMode in Azure PowerShell · Azure/azure-powershell Wiki · GitHub

というわけで、基本的には

[Verb]-AzureRm[Noun]

という、Rmが間に挟まる形式になりました。ということで、既存の資産はほぼリネームだけでいける気がします。リファレンスは以下の通り。

Azure Cmdlet Reference

インストール

以前の Azure PowerShell がインストールされていたら、まずはアンインストールしておきましょう。

1.0からは、PowerShellGet という仕組みでインストールするらしく、Windows 10 ではデフォルトで組み込まれていますが、Windows 8などは、Windows Management Framework 5.0が必要です。

Download Windows Management Framework 5.0 Production Preview from Official Microsoft Download Center

PowerShellを管理者権限で以下を実行します。

PS C:\> Install-Module AzureRM

PS C:\> Install-AzureRM
Installing AzureRM modules.
AzureRM.Profile 0.10.0 installed [1/24]...
Azure.Storage 0.10.1 installed [2/24]...
AzureRM.ApiManagement 0.10.0 installed [3/24]...
AzureRM.Automation 0.10.0 installed [4/24]...
AzureRM.Backup 0.10.0 installed [5/24]...
AzureRM.Batch 0.10.0 installed [6/24]...
AzureRM.Compute 0.10.0 installed [7/24]...
AzureRM.DataFactories 0.10.0 installed [8/24]...
AzureRM.Dns 0.10.0 installed [9/24]...
AzureRM.HDInsight 0.10.0 installed [10/24]...
AzureRM.Insights 0.10.0 installed [11/24]...
AzureRM.KeyVault 0.10.0 installed [12/24]...
AzureRM.Network 0.10.0 installed [13/24]...
AzureRM.OperationalInsights 0.10.0 installed [14/24]...
AzureRM.RedisCache 0.10.0 installed [15/24]...
AzureRM.Resources 0.10.0 installed [16/24]...
AzureRM.SiteRecovery 0.10.0 installed [17/24]...
AzureRM.Sql 0.10.0 installed [18/24]...
AzureRM.Storage 0.10.1 installed [19/24]...
AzureRM.StreamAnalytics 0.10.0 installed [20/24]...
AzureRM.Tags 0.10.0 installed [21/24]...
AzureRM.TrafficManager 0.10.0 installed [22/24]...
AzureRM.UsageAggregates 0.10.0 installed [23/24]...
AzureRM.Websites 0.10.0 installed [24/24]...

PS C:\> Import-AzureRM
Importing AzureRM modules.
AzureRM.ApiManagement imported...
AzureRM.Automation imported...
AzureRM.Backup imported...
AzureRM.Batch imported...
AzureRM.Compute imported...
AzureRM.DataFactories imported...
AzureRM.Dns imported...
AzureRM.HDInsight imported...
AzureRM.Insights imported...
AzureRM.KeyVault imported...
AzureRM.Network imported...
AzureRM.OperationalInsights imported...
AzureRM.RedisCache imported...
AzureRM.Resources imported...
AzureRM.SiteRecovery imported...
AzureRM.Sql imported...
AzureRM.Storage imported...
AzureRM.StreamAnalytics imported...
AzureRM.Tags imported...
AzureRM.TrafficManager imported...
AzureRM.UsageAggregates imported...
AzureRM.Websites imported...

PS C:\> Get-Module

ModuleType Version    Name                                ExportedCommands                                                            
---------- -------    ----                                ----------------                                                            
Script     1.0.1      AzureRM                             {CheckIncompatibleVersion, Import-AzureRM, Install-ModuleWithVersionCheck...

Get-Module して、読み込まれていればOKでしょう。

認証とサブスクリプションまわり

認証は、Add-AzureRmAccountを使います。サブスクリプション一覧は、Get-AzureRmSubscription ですが、Allを指定しないと全て出てきませんので、以前と異なる挙動のです。

# 認証
Add-AzureRmAccount

## サブスクプション一覧
Get-AzureRmSubscription -All

SubscriptionName : xxxx-sbscr
SubscriptionId   : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
TenantId         : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

サブスクリプションの切り変えで、前回と異なるのは、テナントIdを意識しないといけないようです。

Select-AzureRmSubscription -SubscriptionId xxxx -TenantId yyyy

TenantId は必須パラメータではありませんが、異なるテナントId間で切り替えるときは、明示的に指定しないとエラーになりました。

以上、次回に続くはず。