とある技術の開発日記

Diary of irregular phrase programmer

Windows Azure PowerShell のコマンドレットを分類してみた

この記事はWindowsAzureアドベントカレンダーの3月19日連動記事です。

Windows Azureは通常の管理画面から様々な操作を行う事ができますがPowerShellからでも色々な操作を行う事ができます。
今回はAzureをPowerShellから操作するための手順と、Azure用のコマンドレットを各機能ごとに分類してみたのでご紹介したいと思います。

PowerShellとは

Windows PowerShell は、マイクロソフトが開発した拡張可能なコマンドラインインターフェース (CLI) シェルおよびスクリプト言語である。オブジェクト指向に基づいて設計されており、.NET Framework 2.0 を基盤としている。

Wikipediaより引用

Windows Azure PowerShellをインストールする

インストールする方法はいくつかあるのですが、WebPIを使用してインストールします。

  1. [Microsoft Web Platform Installer]を起動して右上の検索用テキストボックスに[Azure PowerShell]と入力して検索します。
  2. [Windows Azure PowerShell(英語)]を追加ボタンをクリックしてインストールします。

f:id:airish9:20140318175653j:plain

インストールはこれで完了です。

アカウント認証を行う

管理ポータルを利用する時にログインするのと同じ様にPowerShellで操作する場合もアカウントの認証を行う必要があります。
アカウント認証する方法はPowerShellの画面に次のコマンドを入力します。

Add-AzureAccount

このコマンドを実行するとアカウント認証の画面が表示されるので、使用するアカウントの情報を入力します。

操作するサブスクリプションを選択する

複数のサブスクリプションを所有する方は次の方法で使用するサブスクリプションを選択してください。

アカウント認証を行う

管理ポータルを利用する時にログインするのと同じ様にPowerShellで操作する場合もアカウントの認証を行う必要があります。
アカウント認証する方法はPowerShellの画面に次のコマンドを入力します。

Add-AzureAccount

このコマンドを実行するとアカウント認証の画面が表示されるので、使用するアカウントの情報を入力します。

操作するサブスクリプションを選択する

複数のサブスクリプションを所有する方は次の方法で使用するサブスクリプションを選択してください。

Get-AzureSubscription

サブスクリプションを表示して、

Select-AzureSubscription "従量課金"

使用するサブスクリプションを選択します。

使用可能なコマンドレット一覧

ここまで操作を行うとPowerShellから様々な操作を行う事ができます。(仮想マシン作ったり、Webサイト作ったりetc...)
Azureで使用できるコマンドレットの一覧は

help azure

と入力するとコマンドの一覧が表示されますが、多くのコマンドレットが表示され解りにくいので
機能ごとにコマンドレットを分類してみました。

・アカウント&サブスクリプション
Add-AzureAccount
Get-AzureAccount
Get-AzureAffinityGroup
Get-AzurePublishSettingsFile
Get-AzureSubscription
Import-AzurePublishSettingsFile
New-AzureAffinityGroup
Remove-AzureAccount
Remove-AzureAffinityGroup
Remove-AzureSubscription
Select-AzureSubscription
Set-AzureAffinityGroup
Set-AzureSubscription
仮想マシン
Add-AzureDataDisk
Add-AzureDisk
Add-AzureEndpoint
Add-AzureProvisioningConfig
Add-AzureVMImage
Export-AzureVM
Get-AzureAclConfig
Get-AzureDataDisk
Get-AzureDisk
Get-AzureEndpoint
Get-AzureRemoteDesktopFile
Get-AzureOSDisk
Get-AzureStaticVNetIP
Get-AzureSubnet
Get-AzureVM
Get-AzureVMAccessExtension
Get-AzureVMAvailableExtension
Get-AzureVMBGInfoExtension
Get-AzureVMExtension
Get-AzureVMImage
Get-AzureWinRMUri
Import-AzureVM
New-AzureAclConfig
New-AzureCertificateSetting
New-AzureQuickVM
New-AzureSSHKey
New-AzureVM
New-AzureVMConfig
Remove-AzureAclConfig
Remove-AzureDataDisk
Remove-AzureDisk
Remove-AzureEndpoint
Remove-AzureStaticVNetIP
Remove-AzureVM
Remove-AzureVMAccessExtension
Remove-AzureVMBGInfoExtension
Remove-AzureVMExtension
Remove-AzureVMImage
Restart-AzureVM
Save-AzureVMImage
Set-AzureAclConfig
Set-AzureAvailabilitySet
Set-AzureDataDisk
Set-AzureEndpoint
Set-AzureLoadBalancedEndpoint
Set-AzureOSDisk
Set-AzureStaticVNetIP
Set-AzureSubnet
Set-AzureVMAccessExtension
Set-AzureVMBGInfoExtension
Set-AzureVMExtension
Set-AzureVMSize
Set-AzureWebsite
Start-AzureVM
Stop-AzureVM
Test-AzureStaticVNetIP
Update-AzureDisk
Update-AzureVM
Update-AzureVMImage
クラウドサービス
Add-AzureCacheWorkerRole
Add-AzureCertificate
Add-AzureDjangoWebRole
Add-AzureNodeWebRole
Add-AzureNodeWorkerRole
Add-AzurePHPWebRole
Add-AzurePHPWorkerRole
Add-AzureWebRole
Add-AzureWorkerRole
Enable-AzureMemcacheRole
Get-AzureCertificate
Get-AzureDeployment
Get-AzureDns
Get-AzureRole
Get-AzureService
Get-AzureServiceADDomainExtension
Get-AzureServiceDiagnosticsExtension
Get-AzureServiceExtension
Get-AzureServiceRemoteDesktopExtension
Move-AzureDeployment
New-AzureDeployment
New-AzureDns
New-AzureRoleTemplate
New-AzureService
New-AzureServiceADDomainExtensionsConfig
New-AzureServiceDiagnosticsExtensionsConfig
New-AzureServiceExtensionConfig
New-AzureServiceProject
New-AzureServiceRemoteDesktopExtensionsConfig
New-AzureSSHKey
Publish-AzureServiceProject
Remove-AzureCertificate
Remove-AzureDeployment
Remove-AzureService
Remove-AzureServiceADDomainExtension
Remove-AzureServiceDiagnosticsnExtension
Remove-AzureServiceExtension
Remove-AzureServiceRemoteDesktopExtension
Reset-AzureRoleInstance
Save-AzureServiceProjectPackage
Set-AzureDeployment
Set-AzureRole
Set-AzureService
Set-AzureServiceADDomainExtension
Set-AzureServiceDiagnosticsExtension
Set-AzureServiceExtension
Set-AzureServiceProject
Set-AzureServiceProjectRole
Set-AzureServiceRemoteDesktopExtension
Set-AzureWalkUpgradeDomain
Start-AzureService
Stop-AzureService
・Webサイト
Disable-AzureWebsiteApplicationDiagnostic
Disable-AzureWebsiteDebug
Enable-AzureWebsiteApplicationDiagnostic
Enable-AzureWebsiteDebug
Get-AzureWebsite
Get-AzureWebsiteDeployment
Get-AzureWebsiteJob
Get-AzureWebsiteJobHistory
Get-AzureWebsiteLocation
Get-AzureWebsiteLog
New-AzureWebsite
New-AzureWebsiteJob
Publish-AzureWebsiteProject
Remove-AzureWebsite
Remove-AzureWebsiteJob
Restart-AzureWebsite
Restore-AzureWebsiteDeployment
Save-AzureWebsiteLog
Show-AzureWebsite
Start-AzureWebsite
Start-AzureWebsiteJob
Stop-AzureWebsite
Stop-AzureWebsiteJob
Switch-AzureWebsiteSlot
Update-AzureWebsiteRepository
・HDInsight
Add-AzureHDInsightConfigValues
Add-AzureHDInsightMetastore
Add-AzureHDInsightStorage
Get-AzureHDInsightCluster
Get-AzureHDInsightJob
Get-AzureHDInsightJobOutput
Get-AzureHDInsightProperties
Grant-AzureHDInsightHttpServic...
Invoke-AzureHDInsightHiveJob
New-AzureHDInsightCluster
New-AzureHDInsightClusterConfig
New-AzureHDInsightHiveJobDefinition
New-AzureHDInsightMapReduceJobDefinition
New-AzureHDInsightPigJobDefinition
New-AzureHDInsightSqoopJobDefinition
New-AzureHDInsightStreamingMapReduceJobDefinition
Remove-AzureHDInsightCluster
Revoke-AzureHDInsightHttpServicesAccess
Set-AzureHDInsightDefaultStorage
Start-AzureHDInsightJob
Stop-AzureHDInsightJob
Use-AzureHDInsightCluster
Wait-AzureHDInsightJob
・ストレージ
Add-AzureVhd
Get-AzureStorageAccount
Get-AzureStorageBlob
Get-AzureStorageBlobContent
Get-AzureStorageBlobCopyState
Get-AzureStorageContainer
Get-AzureStorageKey
Get-AzureStorageQueue
Get-AzureStorageServiceLoggingProperty
Get-AzureStorageServiceMetricsProperty
Get-AzureStorageTable
New-AzureStorageAccount
New-AzureStorageBlobSASToken
New-AzureStorageContainer
New-AzureStorageContainerSASToken
New-AzureStorageContext
New-AzureStorageKey
New-AzureStorageQueue
New-AzureStorageQueueSASToken
New-AzureStorageTable
New-AzureStorageTableSASToken
Remove-AzureStorageAccount
Remove-AzureStorageBlob
Remove-AzureStorageContainer
Remove-AzureStorageQueue
Remove-AzureStorageTable
Save-AzureVhd
Set-AzureStorageAccount
Set-AzureStorageBlobContent
Set-AzureStorageContainerAcl
Set-AzureStorageServiceLoggingProperty
Set-AzureStorageServiceMetricsProperty
Start-AzureStorageBlobCopy
Stop-AzureStorageBlobCopy
SQLデータベース
Get-AzureSqlDatabase
Get-AzureSqlDatabaseImportExportStatus
Get-AzureSqlDatabaseOperation
Get-AzureSqlDatabaseServer
Get-AzureSqlDatabaseServerFirewallRule
Get-AzureSqlDatabaseServerQuota
Get-AzureSqlDatabaseServiceObjective
New-AzureSqlDatabase
New-AzureSqlDatabaseServer
New-AzureSqlDatabaseServerContext
New-AzureSqlDatabaseServerFirewallRule
Remove-AzureSqlDatabase
Remove-AzureSqlDatabaseServer
Remove-AzureSqlDatabaseServerFirewallRule
Set-AzureSqlDatabase
Set-AzureSqlDatabaseServer
Set-AzureSqlDatabaseServerFirewallRule
Start-AzureSqlDatabaseExport
Start-AzureSqlDatabaseImport
・メディアサービス
Get-AzureMediaServicesAccount
New-AzureMediaServicesAccount
New-AzureMediaServicesKey
Remove-AzureMediaServicesAccount
・サービスバス
Get-AzureSBAuthorizationRule
Get-AzureSBLocation
Get-AzureSBNamespace
New-AzureSBAuthorizationRule
New-AzureSBNamespace
Remove-AzureSBAuthorizationRule
Remove-AzureSBNamespace
Set-AzureSBAuthorizationRule
・仮想ネットワーク
Get-AzureVNetConfig
Get-AzureVNetConnection
Get-AzureVNetGateway
Get-AzureVNetGatewayKey
Get-AzureVNetSite
New-AzureVNetGateway
Remove-AzureVNetConfig
Remove-AzureVNetGateway
Set-AzureVNetConfig
Set-AzureVNetGateway
・未分類(用途不明だったり分類できなかたもの)
Add-AzureEnvironment
Disable-AzureServiceProjectRemoteDesktop
Enable-AzureServiceProjectRemoteDesktop
Get-AzureEnvironment
Get-AzureLocation
Get-AzureOSVersion
Get-AzureStoreAddOn
Get-AzureRoleSize
Get-AzureServiceAvailableExtentions
Get-AzureServiceProjectRoleRuntime
New-AzureStoreAddOn
Remove-AzureEnvironment
Remove-AzureStoreAddOn
Set-AzureEnvironment
Set-AzureStoreAddOn
Show-AzurePortal
Start-AzureEmulator
Stop-AzureEmulator
Test-AzureName


仮想マシンやストレージに関するコマンドレットは便利に使えそうな物が多いですね。