ページの先頭行へ戻る
Systemwalker Operation Manager  Windows Azure 連携ガイド
FUJITSU Software

3.2.4 ロール/サービスパッケージの作成

Windows Azureのロール上で、クラウドジョブ実行エージェントが動作します。Windows Azure上で動作させるロールおよびサービスパッケージの作成方法について説明します。


開発環境で、Visual Studioを使用して作成します。以下の作業が必要です。

3.2.4.1 ロールの設計/作成

Visual Studioを使って、Workerロールを作成します。

作成するロールは、以下の条件を満たしてください。

以下に、WorkerロールのWorkerRoleクラスの修正例を示します。

namespace WorkerRole
{
    public class WorkerRole : RoleEntryPoint
    {
        public override void Run()
        {
            while (true)
            {
                Thread.Sleep(10000);
                Process.Start(@"jmcloudazje.exe");
            }
        }

        public override bool OnStart()
        {
            return base.OnStart();
        }
    }
}

この例では、10秒ごとにクラウドジョブ実行エージェント(jmcloudazje.exe)を起動しています。こうすることで、10秒ごとにWindows Azure上でストレージの依頼キューを確認することができます。

jmcloudazje.exeは、依頼キューにより通知されたメッセージからクラウドジョブを実行するための情報を抽出して、指定されたロール内のアプリケーションを起動します。

参考

クラウドジョブ実行エージェント(jmcloudazje.exe)は、Webロールで利用することもできます。その場合も、定期的にクラウドジョブ実行エージェント(jmcloudazje.exe)を呼び出すように、Webロールを設計してください。


情報の設定

作成したロールに必要な情報の設定をします。

  1. Visual Studioのソリューションエクスプローラーから、Windows Azure Project配下にある作成したロールのプロパティを開きます。

  2. [設定]タブに以下の文字列型の設定を加えます。

名前 / Name

型 / Type

値 / Value

OMGRACCOUNTNAME

String

Windows Azureのストレージサービスのアカウント名

OMGRSHAREDKEY

String

Windows Azureストレージサービスのプライマリ
またはセカンダリのアクセスキー

OMGRENDPOINTBLOB

String

BLOBのURL
設定形式はhttps://から始まって、最後に「/」は不要です。

OMGRENDPOINTQUEUE

String

キューのURL
設定形式はhttps://から始まって、最後に「/」は不要です。

OMGRRETRYCOUNT

String

クラウドジョブ実行エージェントからストレージに対して
操作する必要が生じた場合のリトライ回数
省略値は6回です。0~86400の間で指定してください。

OMGRRETRYINTERVAL

String

クラウドジョブ実行エージェントからストレージに対して
操作する必要が生じた場合のリトライ間隔(秒)
省略値は10秒です。1~86400の間で指定してください。

上記の情報は、環境設定時に必要となるため、控えておいてください。


また、クラウドジョブ実行エージェントが業務アプリケーションを起動させるために、サービス定義ファイル(ServiceDefinition.csdef)のロールの定義部分に以下の記述が必要です。

<Runtime executionContext="elevated" />

以下にサービス定義ファイル(ServiceDefinition.csdef)の編集例を示します。

<ServiceDefinition name="SampleWorkerRole" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
  <WorkerRole name="SampleWorkerRole">
    <ConfigurationSettings>
      <省略>
    </ConfigurationSettings>
    <Runtime executionContext="elevated" />
  </WorkerRole>
</ServiceDefinition>

3.2.4.2 アプリケーションプログラムの準備

Windows Azure上で動作させる業務アプリケーションを作成します。

Windows Azure上で動作可能なジョブとなるための前提条件および注意事項について説明します。


アプリケーションプログラムの前提条件

以下のすべての条件を満たしてください。

以下に該当するコマンドは、登録しないでください。

また、実行ファイルへの入/出力ファイルのパスは、保守性および環境の移行しやすさの観点から、ジョブの引数などの外部変数とすることを推奨します。


終了コードの値

実行ファイルの終了コードは、200以下になるようにしてください。

Systemwalker Operation Managerのジョブスケジューラで扱える終了コードの値は、256までですが、201~256までの終了コードはジョブスケジューラで使用しています。また、実行ファイルの復帰値が256以上の場合は255として扱われます。


標準出力および標準エラー出力の文字コードについて

業務アプリケーションが標準出力および標準エラー出力に出力するデータは、UNICODE形式にしてください。


3.2.4.3 アプリケーションプログラムの同梱

業務アプリケーションをロールに同梱(インポート)する手順について説明します。

手順は、Visual Studio 2010を使用した場合のものです。

  1. Visual Studioのソリューションエクスプローラーから、WorkerRoleプロジェクトを右クリックして、[追加]-[新しいフォルダー]を選択ます。

  2. 1.で作成したフォルダを右クリックして[追加]-[既存の項目の追加]を選択します。

  3. 表示されたダイアログで、用意した業務アプリケーションを選んで[追加]します。

  4. 3.で登録したファイルをソリューションエクスプローラーから選択します。

  5. プロパティの[出力ディレクトリにコピー]の項目を[常にコピーする]に変更します。

1.で作成したフォルダ名は、ジョブ定義の際に必要となるため、控えておいてください。

ジョブ定義の際、クラウドジョブ実行依頼コマンドに与えるアプリケーションの指定方法は、「\“フォルダ名”\“アプリケーションプログラム名”」とする必要があります。

例えば、1.で作成したフォルダ名を“bin”、アプリケーションプログラム名を“app.exe”とすると、「\bin\app.exe」と指定します。


3.2.4.4 クラウドジョブ実行エージェントの同梱

Systemwalker Operation Manager メディアパック V1 powered by Windows Azureを購入した場合は、開発環境にインストールしたクラウドジョブ実行エージェントをロールに同梱する必要があります。以下の手順に従ってクラウドジョブ実行エージェントをWorkerロールのプロジェクトの直下に格納してください。

手順は、Visual Studio 2010を使用した場合のものです。

  1. Visual Studioのソリューションエクスプローラーから、WorkerRoleプロジェクトを右クリックして、[追加]-[既存の項目の追加]を選択します。

  2. 表示されたダイアログで、インストール先フォルダ配下のmpjmcloud_agent\binに格納されたクラウドジョブ実行エージェント(jmcloudazje.exe)を選んで[追加]します。

  3. 2.で登録したファイルをソリューションエクスプローラーから選択します。

  4. プロパティの[出力ディレクトリにコピー]の項目を[常にコピーする]に変更します。


3.2.4.5 Windows Azure展開用ファイルの作成

Windows Azure上に展開するための展開用ファイルの作成方法について説明します。


作成手順

  1. Windows Azure Projectのプロパティを選び、右クリックして[発行...]を選択します。

  2. [Windows Azureプロジェクトの配置]ウィンドウで、[サービスパッケージだけを作成]を選択し、出力先のパスを指定してOKボタンをクリックします。

これにより、作成されたサービスパッケージファイル(*.cspkg)とサービス構成ファイル(*.cscfg)が表示されます。


情報の取得

表示されたサービスパッケージファイル(*.cspkg)とサービス構成ファイル(*.cscfg)の情報から、以下を取得しておきます。

これらの情報は、デプロイメントの制御を行う際に必要となるため、控えておいてください。

開発環境の上記ファイルがWindows共有できない場合は、スケジュールサーバ環境にコピーするなどして、運用時にアクセス可能な状態にしてください。