CSPack を使って CSRun したり Startup Tasks を使ったりしたい

この間の続きです。
この間は簡単にCSPackでWindows Azureのデプロイパッケージを作成する方法を記載しました。

ただ、後でわかりましたが前回のフォルダ構成だとWindows Azure SDK 1.3から使えるStartupTasksの利用時やCSRunコマンドを使ったCompute Emulatorでの実行時に問題があることがわかりました。

なので今日はその辺のフォローアップをしたいと思います。

まずWebアプリケーションとWebRole用のEntryPointを作成、サービス定義ファイルを作成するところまでは前回と同じです。忘れずにサービス定義ファイルにStart要素とTask要素を追加してスタートアップタスクを登録しましょう。

さてこれで一通りファイルがそろいました。
前回と違うのは、ファイルの置き場所です。

指定したタスクファイルと、ロールのEntryPointなDLLをアプリケーションルートのBin(この場合発行したWebアプリのBinフォルダ)に移す必要があります。
※タスクファイルはサービス定義ファイルでパス指定しなかった場合

こんな感じですね。

ではCSPackコマンドでパッキングしましょう。

…とその前に、Compute Emulatorで動作するか見てみようと思います。

Compute Emulatorで動作させるにはCSPackのオプションに /copyonlyを追加します。

パスの構成が面倒くさくなったのでおさらい。

  • DeployPackage フォルダにRolePropertyファイルやCSDEFファイルをおく
  • PublishedWeb フォルダ配下にapproot フォルダ作ってそこに発行されたWebアプリがある

という状態でPublishedWebフォルダでCSPackを実行した場合です。

C:\Temp\samples\CSPackSample\PublishedWeb>cspack ..\deploypackage\ServiceDefinition.csdef
/sitePhysicalDirectories:CSPackWebRole;Web;approot
/out:C:\Temp\samples\CSPackSample\CSPackWebRole.csx
/role:CSPackWebRole;approot;bin\SimpleAzureEntryPoint.dll
/rolePropertiesFile:CSPackWebRole;..\deploypackage\roleproperty.txt
/generateConfigurationFile:..\deploypackage\ServiceConfiguration.cscfg
/copyonly

※実際は全部1行です。パスに関する部分は赤字にしました。

エラーなく完了すれば、指定したフォルダに .csxなフォルダが作成されていると思います。
※.csxでなくてもいいと思うのですがツールにあわせました。

作成した(今回だとCSPackWebRole.csx)フォルダを見てみると。

こんな感じでapprootに指定したWebアプリのファイル、その下のBinフォルダにEntryPointなDLLや指定したタスクのコマンドファイルがちゃんとコピーされているのがわかります。

ではこの状態でComputeEmulatorで実行してみたいと思います。

※CSRunコマンドを実行する場合は管理者権限で実行しましょう。

Windows Azure SDK コマンドプロンプトを開いて以下のように実行します。

csrun CSPackWebRole.csx .\DeployPackage\ServiceConfiguration.cscfg

1つ目のオプションに.csxフォルダ、2つ目のオプションにサービス設定ファイル(.cscfg)を指定するだけです。

簡単ですね。ちゃんと起動してアクセスできることが確認できます。
もしフォルダ構成やCSPackのオプションをミスってたりすると、起動はしますがひたすらエラーでまともに起動しなかったりするので注意しましょう。

※たちの悪いことに、構文的にエラーがなければ(フォルダ階層が多少腐ってても)CSPackはエラーにならないので/copyonlyオプションつけてapproot以下が想定した通りになっているか確認する必要があります。

無事動作することが確認できれば、同様にCSPackで/outオプションで.cspkgファイルを指定し、/copyonlyオプションを外せばばWindows Azureへのデプロイ用パッケージができあがります。

これでいろいろばっちりですね!

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中