
この記事では、人気のあるantツールの使用について説明します。
- antを使用してWindows Azure用のJavaアプリケーションを構築する
- 収集したパッケージをWindows Azureでレイアウトし、ローカルエミュレーターを使用する
始める前に、Windows Azure-Windows Azure E-Book-Microsoft Cloud Platformに関する一般的な情報と、Windows Azure に関するロシア語の24の記事をよく理解することをお勧めします。 Windows AzureでJavaアプリケーションを操作するには、 Java用のWindows Azure Starter Kitを使用します (Eclipseユーザーには、 Eclipseプラグイン用のWindows Azureプラグインがあります )。 Java用Windows Azureスターターキットは 、ビルドプロセス中にツールとしてApache Antを使用します。ドキュメントはこちらから入手できます。ApacheAntマニュアル (ロシア語: 10ステップのAnt(make ant java)またはApache Ant 101:Instant build) Javaプログラム )。 この記事では、Windows Azureエミュレーターの使用方法について説明します。WindowsAzureサイトのダウンロードセクション (エミュレーターリンク)にインストールできます。詳細については、 デスクトップ上のWindows Azureエミュレーターを参照してください。
Java用Windows Azureスターターキット
[ ダウンロード]セクションには、プロジェクトテンプレートを含むZIPファイルへのリンクがあります-開始するには、アーカイブの内容を解凍するだけです。 標準のJavaコンポーネントに加えて、Windows Azureとの連携を容易にするプロジェクト内のファイルがいくつかあります。
プロジェクトテンプレートの主要な要素
ファイル
| 説明 |
.cspack.jar | Windowsazurepackage Antタスクの実装 |
ServiceConfiguration.cscfg | Windows Azureサービス構成ファイル |
ServiceDefinition.csdef | Windows Azureサービス構成ファイル |
package.xml | antの構成ファイル(スクリプト) |
WorkerRole1 \ approot \ HelloWorld.war | 簡単なアップロードの実装例。 |
WorkerRole1 \ approot \ startup.cmd | この開始スクリプト(バッチファイル)は、アップロードプロセスの開始が開始されるたびに実行されます。 このファイルには、WindowsAzureインスタンスを起動するときに実行する必要があるすべてのアクション(Javaアプリケーションサーバーのインストールや起動など、個々のコンポーネントのインストールや構成など)を実装する必要があります。 |
サンプル | このディレクトリには、一般的なJavaアプリケーションサーバー(Tomcat、JBoss、GlassFish、Jettyなど)のインストールと設定の例が含まれています。これらの例を使用して、必要なstartup.cmd実装を作成できます。 |
WorkerRole1 \ approot \ run.cmd | このスクリプト(バッチファイル)は、アップロードプロセスが開始されるたびに実行されます。 このスクリプトは、アプリケーションが動作状態にある間、常に実行されることになっています。 このスクリプトの終了が発生した場合、Azureはインスタンスデータを再起動する必要があると考えています。 テンプレートは、run.cmdの例を実装しており、java.exeパラメーターを指定したutil \ whileproc.cmdの呼び出しを確認できるwhile.proc.cmdスクリプト(WorkerRole1 \ approot \ utilにあります)は、java.exeプロセスがチェックされるように15秒ごとにチェックします起動しました。 |
WorkerRole1 \ approot \ util unzip.vbs | スクリプト(ビジュアルベーシックスクリプト)は、zipアーカイブの解凍を実装します。このスクリプトは、zipアーカイブの解凍が必要な場合にstartup.cmdを実装するときに役立ちます。 |
WorkerRole1 \ approot \ util download.vbs | スクリプト(Visual Basicスクリプト)は、指定されたURLのapprootフォルダーへの読み込みを実装します。 このスクリプトは、一部のデータをダウンロードする必要がある場合にstartup.cmdを実装するときに非常に役立ちます。たとえば、Javaサーバー配布キットなど、大規模な配布パッケージ(Windows Azureのアプリケーションパッケージにこの配布パッケージを含めないため)をダウンロードできます。 リンク(URL)は、認証を必要としないリソース(匿名アクセスのBLOBにあるデータを含む- コンテナーと BLOBへのアクセスの制限を参照)または認証に必要なすべての情報が含まれるリンクを指すことができますURLリンク自体(たとえば、 共有アクセス署名が有効になっているBLOBである場合があります )。 |
cert \ SampleRemoteAccessPrivate.pfx | Windows Azureの実行中のインスタンスへのリモートデスクトップアクセスを許可するためにWindows Azure Webポータルからダウンロードできる証明書付きの秘密キーの例- リモートデスクトップまたはMicrosoft Windows Azureを参照してください。 クイックスタート。 パート4. Windows Azure仮想マシンの内部 |
cert \ SampleRemoteAccessPublic.cer | 証明書付きの公開キーの例-このキーは、リモートデスクトップ経由でアクセスするために秘密キーと組み合わせて使用する必要があります-詳細については、 リモートデスクトップまたはMicrosoft Windows Azureを参照してください。 クイックスタート。 パート4. Windows Azure仮想マシンの内部 |
起動スクリプトの実装を選択する
プロジェクトテンプレートを使用すると、Tomcat、Jetty、JBoss、GlassFishなどのさまざまなJavaアプリケーションサーバーを使用できます(他のアプリケーションサーバーでも使用できますが、いくつかの設定を変更します)。 特定のJavaサーバーのテンプレートを構成するには、適切な開始スクリプト(サンプルフォルダーにあります)を取得し、このスクリプトの内容をstartup.cmdスクリプトにコピーする必要があります(したがって、その内容は完全に置き換えられます)。 さらに、起動スクリプトを変更する必要がある場合は、すぐにstartup.cmdで変更することをお勧めしますJDK.zipパッケージをapprootに追加する
例として、
javaサーバーを含むパッケージをapprootに追加する
次のステップは、選択したJavaアプリケーションサーバーをapprootに追加することです。起動スクリプトへの変更を最小限に抑えるために、デフォルト名を使用することをお勧めします。 選択したサーバーに応じて、表に従ってJavaサーバーで圧縮アーカイブの名前をZIPに変更しますサーバー | ファイル名
|
Apache Tomcat 7.x | tomcat7.zip |
GlassFish Server OSE 3.x | glassfish3.zip |
JBoss Application Server 6.x | jboss6.zip |
JBoss Application Server 7.x | jboss7.zip |
Jetty 7.x | jetty7.zip |

次のステップは、起動スクリプトのSERVER_DIR_NAME変数に正しい値を設定することです-変数は、Javaサーバーが展開されるディレクトリを指す必要があります。 原則として、ZIPファイル内のJavaサーバーがあるフォルダーの名前と同じに設定するだけで十分です。 Javaサーバーを解凍するためのフォルダー名がZIP内のフォルダー名と等しくなるように選択するのが最適な理由は、通常、Javaサーバーの異なるリリースがバージョンとディレクトリ名の間に強い関係があるためです。 サンプルの例には、もはや関係がなく、Javaサーバーの最新リリースに対応しない値が含まれているため、使用するバージョンに応じてSERVER_DIR_NAMEの値を更新することをお勧めします。 たとえば、Apache Tomcatの例(ファイルサンプル/ startupApacheTomcat7.txt)では、この変数の値はSET SERVER_DIR_NAME = apache-tomcat-7.0.22に設定されています。 このドキュメントを読むときには、バージョン7.0.22が最後ではない可能性が高いため、新しいバージョン(7.0.29など)を使用するため、SERVER_DIR_NAME変数の値を更新することを忘れないでください(この場合、SERVER_DIR_NAME = apache -tomcat-7.0.29)。 これを行わないと、アプリケーションが実行中のインスタンスに正しくデプロイすることさえできなくなる可能性が非常に高くなります。 エラーの一般的な原因は、この変数を初期化するときに余分な(目立たない)スペースを使用することです。初期化文字列は(二重引用符なしで)「SET SERVER_DIR_NAME = apache-tomcat-7.0.29」以降のように見えることに注意してください=記号、および初期化行の終了後(この場合は文字9の後)、スペースはありませんこのステップの後、ローカルWindows Azureエミュレーターでこのプロジェクトを既にビルドおよび実行しようとすることができます-Javaサーバーの目的を確認してください OSCALとHelloWorldアプリケーションが正しく設定されています。 HelloWorldアプリケーションはデフォルトのテンプレートに含まれています-approotで見ることができます。起動スクリプトのWAR_NAME値もこのアプリケーションを指します。 Javaサーバーを起動して「Hello World」アプリケーションをデプロイしようとすると、次の手順に進むことができます。別のJavaアプリケーションを接続する予定がない場合は、次のセクションをスキップして、すぐにアプリケーションのアセンブリとテストに進むことができます。
Javaアプリケーションの準備
そもそも、Windows AzureのプロジェクトはJavaプログラミングプロジェクトではなく、展開プロジェクトであるという事実に注意を喚起したいと思います(さらに、Windows AzureプロジェクトにはJavaコードがまったく含まれない場合があります)。 つまり、開発中のJavaアプリケーションがすでに存在し、そのアプリケーションを含むWARファイルを作成できることが前提となっています。 次に、Windows Azureプロジェクトにアプリケーションを含める手順は次のとおりです。- アプリケーション(たとえば、MyWebApp.war)でWARファイルを作成します。
- このWARファイルをapprootにコピーします(このステップは、WARファイルを作成する手順に追加できます)
- 起動スクリプトstartup.cmdで、それに応じてWAR_NAME変数を変更します-この例ではWAR_NAME = MyWebApp.war

Windows Azureエミュレーターでビルドおよびテストする
Windowsコマンドプロンプトを開き、プロジェクトがあるフォルダーに移動して、antを実行します。ant -buildfile package.xml
このコマンドは、antにpackage.xmlの情報を使用してアプリケーションをビルドするように指示します。 アプリケーションのサイズとコンピューターのパフォーマンスによっては、ビルドプロセスに時間がかかり、非常に長くなる場合があります。 アセンブリが成功した場合、ウィンドウに「BUILD SUCCESSFUL」というコマンドラインのメッセージが表示されます。次のようになります。

デフォルトでは、プロジェクトはエミュレーターへのローカルアップロード用に設定されます(設定はpackage.xmlファイルのpackagetypeパラメーターで指定されます-デフォルトではpackagetype = "local")。 プロジェクトのビルド中に、「emulatorTools」という名前のフォルダーが「deploy」フォルダーの直後に作成されます。 「emulatorFolder」フォルダーには、Windows Azureエミュレーターでより便利に作業できるようにする2つのスクリプト(バッチファイル)が含まれています-プロジェクトのアップロード、サービスの再起動、開始:
- RunInEmulator.cmd-このスクリプトは、ローカルコンピューターでWindows Azureクラウドエミュレーターを起動し、プロジェクトをこの環境に配置します。 プロジェクトがストレージを使用しており、Windows Azureストレージエミュレーターを使用する予定の場合は、Azure Storageエミュレーターを個別に実行する必要があります。
- ResetEmulator.cmd-ローカルのAzure Compute Emulatorで実行中のすべてのアプリケーションインスタンスを削除し、エミュレーターが使用するファイルのロックを解除し、アプリケーションファクトリーをオフにします。 このコマンドは、アプリケーションのテストまたはデバッグの最後に使用する必要があります。
cd emulatorToolsRunInEmulatorすべてがうまくいった場合、アプリケーションはポート8080で起動されます-これは、リンクhttp:// localhost:8080 / MyWebAppをWebブラウザーで開くことで確認できます
Windows Azureのレイアウトのプロジェクト変更
プロジェクトをWindows Azureクラウドで作業できるようにするには、package.xmlファイルにいくつかの変更を加える必要があります。 このファイルには、プロジェクトをローカルまたはリモートのWindows Azureクラウド環境に配置する構成を定義する特別なwindowsazurepackageタグがあります。<windowsazurepackage packagefilename="WindowsAzurePackage.cspkg" packagedir="${wapackagedir}" packagetype="local" projectdir="${basedir}" definitionfilename="ServiceDefinition.csdef" configurationfilename="ServiceConfiguration.cscfg"
>
packagetype属性に注意してください-この属性packagetype = "local"の値は、アセンブルされたプロジェクトの構造がWindows Azureクラウドでの使用とまったく同じになりますが、アセンブリ自体はダウンロード用にパッケージ化されませんが、逆にWindowsエミュレーター環境で実行する準備ができます紺Azure 属性packagetype = "cloud"の値の場合、アセンブリは.cspkgファイルとしてアーカイブされます。WindowsAzure Webポータルを介して、.cspkgファイルと.cscfgファイルをクラウドにアップロードし、クラウド内のアプリケーションをアップロードして実行できます。
Windows Azureでプロジェクトをレイアウトする
アプリケーションをWindows Azureクラウドに配置するのは非常に簡単です。ユーザー名/パスワードを使用してWindows Azureポータルに移動し、2つの簡単な手順を実行します。- PFX証明書をダウンロードします(これがまだ行われていない場合)。 この手順は、リモートデスクトップを介してWindows Azureクラウドで実行中の仮想マシンへのリモートアクセスを有効にするために必要です。リモートアクセスは、Windows Azureでアプリケーションを開発、デバッグ、テストするときに役立ちます。詳細については、 リモートデスクトップまたはMicrosoft Windows Azureを参照してください。 クイックスタート。 パート4. Windows Azure仮想マシンの内部
- 新しい展開を作成し、Azureアプリケーションのビルドプロセス中に作成された.cspkgおよび.cscfgファイルを読み込みます。
便利なリンク
- Windows Azure Webサイト
- Windows Azure E-Book-Microsoftクラウドプラットフォーム
- ロシア語でのWindows Azureに関する24の記事
- Windows Azure開発センター
- Microsoft Windows Azure クイックスタート