Azure クラウドサービス(クラシック)をローカルでエミュレートしようとした時に躓いたこと

Azureの使い方にも慣れてきてAzureを使って開発をしたいなと思い、Azureクラウドサービスにアプリケーションをデプロイする方法を試してみました。

参考 https://msdn.microsoft.com/ja-jp/library/azure/hh690944.aspx

その時、ちょっと躓いたことをメモします。

  • やったこと
    1. Azure クラウドサービスにデプロイする
    2. Azure Compute Emulatorを使ってローカルでアプリケーションを動かす
  • 躓いたこと

1.デプロイ先が、Azure Preview Portalで作成したクラウドサービスではなく、Azure Portalで作成したクラウドサービスだったこと。

Azure Toolkit for Eclipseでは、Azure Preview PortalクラウドサービスApp Serviceへのデプロイ方法は以下のサイトに掲載されていました。次に試してみようと思います。

参考 https://azure.microsoft.com/ja-jp/documentation/articles/web-sites-deploy/#

2.Azure Compute Emulatorを起動できない

3回躓きました。

1回目は、Azureデプロイプロジェクトのサーバ構成の設定で、Local server pathを参照ボタンから指定しても「そのアプリケーションサーバは認識できない的な」エラーメッセージが出てしまって、サーバ構成の設定ができなかったこと。結局、参照ボタンを使わずに直接パスをコピペしたらエラーメッセージが出ずにサーバ構成の設定が出来ました。

SnapCrab_WorkerRole1 のプロパティー_2015-12-20_15-31-48_No-00

2回目は、ビルドパスが長かったこと。Cドライブの直下にeclipseのディレクトリを作り、その中にAzureにデプロイするアプリのworkspaceを配置 しましたが、「256文字以内でパスを指定してください」的なメッセージが出た為、workspaceをCドライブ直下に変更して実行。

3.アプリケーションを起動できない

3回目は、Azure Compute Emulatorまでは起動できたものの、「java.exe has not started - waiting...」がWorkerRoleのログに出力されてアプリケーションが起動できなかったこと。このログでググって出た以下のサイトから、「パスが間違ってた」というコメントを見つけたので、Eclipseのビルドパスを見るとEclipseJVMを使うようになっていました。Azureデプロイプロジェクトのサーバ構成では、任意のフォルダにインストールしたJDKパスを指定していたので、サーバ構成で指定したパスのJDKEclipseのビルドパスに指定し直したところ動くようになりました。

SnapCrab_WorkerRole1 のプロパティー_2015-12-20_15-30-10_No-00

SnapCrab_MyHelloWorld のプロパティー_2015-12-20_16-18-22_No-00

とても簡単にWebにアプリケーションをデプロイできました。

内部的にはAzureデプロイプロジェクトにデプロイ先のOSバージョン、JDK、Webアプリケーションサーバ、その他諸処設定を持っており、その設定を基にデプロイをしているみたいです。VMを自分で構築して、Webアプリケーションサーバを構築して、…といった手続きを踏む必要がないので、とても簡単にサービスの開始ができる印象を受けました。

 

今後はPortalでリソースを構築するを利用することはないので、Azure Preview PortalのApp Serviceへのアプリケーションのデプロイにも挑戦してみたいと思います。