Azure Automation 機能の詳細: Azure Automation PowerShell コマンドレット
このポストは、8 月 20 日に投稿した Azure Automation Capabilities in Depth: The Azure Automation PowerShell Cmdlets の翻訳です。
はじめに
これまで、皆様には Runbook のオーサリング、アセットの作成、手動またはスケジュール設定によるジョブの開始、統合モジュールのインポート、ジョブの出力の表示など、Azure Automation の優れた機能を Azure ポータルからご利用いただいていたかと思います。今回は、これらの機能すべてだけでなくさらに他の機能もコマンド ラインからプログラムで簡単に実行できることをご紹介します。Azure Automation のオーバーヘッドを完全になくしたい場合でも、Runbook の一括インポートなどの一般的な操作をスクリプト化する場合でも、Azure Automation コマンドレットをご利用いただけます。
Azure Automation コマンドレットを利用する
Azure が提供する PowerShell モジュールは Microsoft Web Platform Installer でインストールできます。Azure PowerShell を使用すると、Azure Automation を含むすべての Azure サービスの管理を行うことができます。
Azure PowerShell モジュールでは現在 20 種類の Azure Automation コマンドレット (英語) が使用可能で、Azure Automation のポータルで実行可能な各種操作をスクリプト化することができます。今後はさらにこの機能が拡張され、Azure Automation の一般提供開始時には約 40 種類のコマンドレットが使用可能になり、Azure Automation の全機能を PowerShell からご利用いただけるようになる予定です。また、コマンドレットは Azure PowerShell モジュールの一部として提供され、Azure PowerShell モジュールは Azure Automation での使用を想定しているため、Azure Automation を初めて使用する場合でも、Runbook に余分な手間をかけずにコマンドレットを利用することができます。
Azure PowerShell モジュールで提供されるコマンドレットの機能を確認する場合は、Azure モジュールがインストールされているホストで PowerShell コンソールを開き、次のコマンドを実行します。
PS C:\> Get-Command -Module Azure -Name *Automation*
このコマンドを実行すると、使用可能なすべての Azure Automation コマンドレットの一覧が返されます。
Azure Automation の特定のコマンドレットの詳細を表示する場合は、次のコマンドを実行します。
PS C:\> Get-Help Some-Command
上記の “Some-Command” の部分を、詳細を確認したい Azure Automation コマンドレットに置き換えます。また、オプションで “–Detailed” や “–Full” を追加すると、そのコマンドレットの情報がさらに詳細に表示されます。
PowerShell ではなく Web ブラウザーでコマンドレットの詳細をご覧になりたい方は、Azure Automation コマンドレットのリファレンス (英語) をご利用ください。
Azure Automation コマンドレットが動作するしくみ
他の Azure コマンドレットと同様に、まずは Azure コマンドレットを実行する Azure サブスクリプションへの接続をセットアップします。Azure への認証には、ローカルの証明書ストアにインストールされている管理証明書、またはお使いの Azure 証明書を使用できます。Set-AzureSubscription、Import-AzurePublishedSettingsFile、Add-AzureAccount、Select-AzureSubscription の各コマンドを使用して Azure への接続をセットアップします。Azure PowerShell コマンドレットから Azure への接続方法の詳細については、こちらを参照してください。Azure への接続のセットアップが完了した後は、その最初の接続設定が保持されるため、Azure コマンドレットを使用するときに再び証明書やエンドポイントを指定する必要はありません。ただし操作のたびに、アクセス時に使用する Azure Automation アカウントの名前を AutomationAccountName パラメーターで指定する必要があります。
コマンドレットの実行
Azure Automation コマンドレットの実行例を次に示します。コマンドレットの出力は下記のようになります。
ここで、コマンドレットを使用する際のヒントを 1 つご紹介します。同一の Azure Automation アカウントで操作を繰り返す場合、AutomationAccountName パラメーターを毎回コマンドレットに渡すのは面倒です。しかし、このパラメーターを繰り返し記述せずに各 Azure Automation コマンドレットに簡単に渡すことができる、スプラッティングという機能があります。スプラッティング (英語) を使用すると、パラメーターのセットをハッシュ テーブルとして定義し、任意のコマンドレットに渡すことができます。次のスクリーンショットをご覧いただくと、どれほど簡単に Azure Automation コマンドレットに Azure Automation アカウント名のパラメーターと値を追加できるかがおわかりいただけるでしょう。
Azure Automation で Azure Automation コマンドレットを使用する
Azure PowerShell モジュールの別の特長として、統合モジュールとしてそのまま使用可能な形で Azure Automation に含まれているという点があります。このため、Azure Automation コマンドレットは Runbook で直接使用することができます。余分な作業は必要ありません。その例として、他の Azure Automation の Runbook を非同期で新しいジョブとして開始し、そのジョブの情報を出力する Azure Automation の Runbook を以下にご紹介します。
Runbook から他の Runbook を開始する方法についての詳細は、Chris Sanders のブログ記事を参照してください。また、Azure Automation コマンドレットを使用する Azure Automation Runbook の例については、Gary Keong のブログ記事をご覧ください。このブログ記事では、Visual Studio Online と Azure Automation を統合し Runbook のソースを管理できるようにする方法が紹介されています。
まとめ
ここまでの説明で、Azure Automation PowerShell コマンドレットの活用方法や、コマンドレット自体のしくみについてご理解いただけたかと思います。Azure Automation では、クラウドおよび業務のプロセスを自動化するだけでなく、Azure Automation 自体をコマンドレットで自動化することも可能です。Azure Automation チームでは、Azure Automation および Azure PowerShell コマンドレットの機能を活用して皆様がどのような Runbook やスクリプトを作成していらっしゃるのか非常に興味があり、ぜひお見せいただきたいと考えています。
Azure Automation をまだご利用でない方は、プレビュー版にサインアップしお試しください。また入門ガイド (英語) をご覧ください。