Windows Azure上での実行
エミュレーターでの実行確認が終わったら、いよいよWindows Azureにサービスを配置します。Windows Azureへのサービスの配置には、管理ポータルもしくは、管理APIを利用した配置の2種類があります。SDK for Node.jsでは、管理ポータルを利用せずに管理APIを通して行います。
[1]サブスクリプションの設定をする
管理APIを通してアプリケーションを配置するには、管理ポータルと開発環境に共通の証明書をインストールする必要があります。SDK for Node.jsでは、これらの作業を一連のコマンドレットを実行することで設定ができます。
Get-AzurePublishSettingsコマンドレットを実行します(リスト8)。
PS C:\node\NodeSample> Get-AzurePublishSettings
ブラウザが起動し、Live IDの認証画面が表示されます。サブスクリプションを保有しているLive IDでログインしてください。しばらくすると、図9の画面が表示され設定ファイルのダウンロードが促されます。[保存]ボタンをクリックして設定ファイルを保存してください。
設定ファイルには、サブスクリプションの情報と証明書情報が含まれているため、第三者の手に渡ると、自身のWindows Azureを自由に操作されてしまいます。従って、安全な場所に保存し、次のインポートを実行した後に削除してください。
このとき、内部的な動作としてWindows Azure側には証明書が作成され、管理APIの利用準備が整います。Get-AzurePublishSettingsコマンドレットを繰り返し実行すると、証明書が複数作成されてしまうため注意してください。証明書の管理は、管理ポータルから行いますが説明は省略します(注4)。
管理方法は、「方法: Windows Azure の管理証明書を管理する」を参考にしてください。
[2]設定ファイルをインポートする
Import-AzurePublishSettingsコマンドレットを実行し、保存した設定ファイルをインポートします(リスト9)。インポートされた証明書はWindowsの証明書ストアに格納されます。
PS C:\node\NodeSample> Import-AzurePublishSettings C:\node\Azure-2-14-2012-credentials.publishsettingsttings
設定ファイルの取得とインポートの様子は図10のとおりです。
[3]サービスをWindows Azureへ配置する
「Publish-AzureService」コマンドレットで、サービスをWindows Azureへ配置します(リスト10)。通常は、ホステッドサービスやストレージアカウントといったリソースをあらかじめ作成しておくこともできますが、SDK for Node.jsでは自動的に作成されます。
PS C:\node\NodeSample> Publish-AzureService -Name NodeSample -Location "East Asia" -Slot Production -Launch
引数の意味は下表のとおりです。
| 引数 | 意味 |
| Name | Azureサービス名を指定します。サービス名はDNS名の一部となり、Windows Azure サービス全体で一意の必要があります。すでに存在する場合、エラーとなります。 |
| Location | サービスを配置するWindows Azureのデータセンターを指定します。ここでは日本から近い東アジア(East Asia)へ配置します。この値は大文字小文字が区別されるので注意してください。指定されていない場合は、別途「Set-AzureDeploymentLocation」コマンドレットで設定済みのロケーションが使用されますが、さらに未指定の場合はアメリカからランダムに選択されます。 ・Anywhere US ・South Central US ・North Central US ・Anywhere Europe ・North Europe ・West Europe ・Anywhere Asia ・Southeast Asia ・East Asia |
| Slot | 配置する環境を指定します。Staging(ステージング環境)またはProduction(運用環境)から指定します。1つのホステッドサービスには、ステージング環境と呼ばれる準備環境と、運用環境と呼ばれる本番環境の2つが用意されています。 |
| Launch | 配置完了時にブラウザを起動します。ただし、ステージング環境では配置時に動的に、URLが決まるため機能しません。 |
図11はサービスの配置の様子です。配置するためのパッケージファイル(注5)の作成から、サービスをホストするホステッドサービスの新規作成まですべて自動で行ってくれます。また、管理APIを経由した配置にはストレージアカウントが必要なため、これも作成されます。
Visual Studioではパッケージファイルを作成することができますが、SDK for Node.jsではパッケージファイルを単独で作成するコマンドレットは用意されていません。
配置には、十数分かかります。ブラウザが起動し、図12が表示されれば正常に実行できています。
[4]サービスの削除
サービスの削除には、Remove-AzureServiceコマンドレットを使用します(リスト10)。配置されたサービスの削除だけではなく、ホステッドサービスそのものが削除されるため注意してください。ただし、サービスを最初に発行したときに作成されたストレージアカウントは、削除されません。
PS C:\node\NodeSample> Remove-AzureService
サービスを停止する「Stop-AzureService」コマンドレットも存在しますが、Windows Azureはサービスが停止状態であったとしてもリソースを占有するため課金され続けます。停止する明確な理由がない限り、削除したほうがよいでしょう。
まとめ
すでにWindows Azureを利用している場合、手動で行っていた多くの部分をSDK for Node.jsが自動で行ってくれることが理解していただけたかと思います。また逆に、Node.jsの利用者は簡単にWindows Azureでアプリケーションを展開できることが理解していただけたかと思います。次回はWindows Azureユーザー向けに、Node.jsの基本的な機能紹介をしたいと思います。





