Azure WebJobs(ジョブの定期実行編)

こんにちは、サイオステクノロジー技術部武井です。

今回は、Azure WebJobsによるジョブの定期実行ついて書きたいと思います。

Azure WebJobsとは?

Azure WebJobsとは、Azureにて、crontabで定義するような定期処理もしくは、デーモンプロセスのようなものを起動するための仕組みです。

似たようなものとしてAzure Functionsがありますが、私の所感としては、重めの業務処理を動かすときはAzure  WebJobs、ライトなスクリプトを動かすときは、Azure Functionsと認識しています。違ってたらすみません。

設定方法

Azure WebJobsでは、PowerShell、C#、Java等様々な言語をサポートしていますが、ここではJavaを利用する前提でお話をします。

仮想マシンの自動シャットダウン(Java SDK編)で作成したのをAzure WebJobsで定期実行してみます。

まず、仮想マシンの自動シャットダウン(Java SDK編)で作成したJavaのプログラムをjar(ファイル名:vm-poweroff.jar)にビルドします。そして、そのjarと以下内容が記載さたファイル(ファイル名:run.cmd)を作成します。

set PATH=%PATH%;%JAVA_HOME%/bin
java -jar vm-poweroff.jar com.sios.azure.VMPowerOff

上記の2つのファイルをZIPに固めます。後ほど使いますので、大事に取っておいて下さい。

Azure portalにログインして、左部メニューより「App Service」をクリックします。

Screen Shot 2017-10-15 at 0.51.11

「追加」をクリックします。

Screen Shot 2017-10-15 at 0.51.21

「Web App」をクリックします。

Screen Shot 2017-10-15 at 0.52.59

「作成」をクリックします。

Screen Shot 2017-10-15 at 0.53.07

「アプリ名」にAzure App Serviceを識別する任意の名称、その他は適宜必要に応じて入力をして、最後に「作成」をクリックします。

Screen Shot 2017-10-15 at 0.53.14

 

Azure App Serivceの一覧に先程作成したアプリが表示されますので、クリックします。Screen Shot 2017-10-15 at 0.53.21

「Webジョブ」をクリックします。

Screen Shot 2017-10-15 at 0.53.29

「+追加」をクリックします。

Screen Shot 2017-10-15 at 0.53.35

「名前」に任意のWebジョブ名、「ファイルのアップロード」に先程作成したZIPファイル、「種類」に「トリガーされた」、「トリガー」に「予定」、「CRON式」に「0 0 0 19 *」を入力します。「CRON式」はLinuxのcronと書式は同じで、この場合はAM4:00に起動することを意味しています(Azure App Serviceは時刻がUTCなので9時間のずれがあります)。最後に「OK」をクリックします。

Screen Shot 2017-10-15 at 0.53.42

これで完了です。翌日朝起きていたら、仮想マシンが全てシャットダウンされていることと思います。

Be the first to comment

コメント投稿

Your email address will not be published.


*