Jobの実行
この演習では、Jobの実行方法を学びます。
GUIから実行#
-
RBAにログインし、Projectを開きます。画面左のJOBSアイコンをクリックします。
-
実行するJobの左側にある再生アイコンをクリックします。
-
dateに日付を入力します。カレンダーアイコンをクリックすると、日付の選択画面が表示されます。
messageにはデフォルト値(Hello World)が入力されていますが、変更しても構いません。 -
NodesのChange the Target Nodesにチェックを入れると、対象のNodesを変更できます。Run Job Nowボタンをクリックしてください。
-
実行結果の表示画面です。Nodes Viewでは、各ノードが実行したNodeステップを確認できます。
-
Log Outputのリンクをクリック(またはViewプルダウンメニューからLog Outputを選択)すると、Workflowステップも含めた実行ログが確認できます。
-
Run Againのリンクをクリックすると、Job実行画面が開きます。Run Job Nowのプルダウンメニューから、Debugログの出力を有効にすることもできます。有効にすると詳細なログがLog Outputに出力されるため、トラブルシューティングで原因を調査する際に利用できます。
スケジュールで定期実行#
スケジュールを作成して定期的に実行することもできます。Jobの編集画面(Scheduleタブ)から、Job固有のスケジュールを設定する方法と、Project内でスケジュールを作成して、複数のJobを一括してスケジュール実行することもできます。ここでは後者のProject Scheduleを試してみます。
-
RBAにログインし、Projectを開きます。画面左のSCHEDULESアイコンをクリックし、+New Scheduleボタンをクリックします。
-
平日の朝9時に実行する場合は、以下のように設定します。
-
Crontabを利用すると、より詳細な設定が可能です。
設定例 - 参考: Cron reference
0 00 09 ? * MON,TUE,WED,THU,FRI *
平日朝9時0 00 09 10,20 * ? *
毎月10日と20日の朝9時
-
ここでは平日朝9時に設定し、Time Zoneを
JST
(日本時間)にして保存します。Saveをクリックしてください。 -
作成したスケジュールに実行対象のJobを紐づけます。Actionsプルダウンメニューから +Assign to Job を選択します。
-
Available Jobs欄から、スケジュールに紐づけるJobをクリックして選択し、Saveボタンを押します。
-
Jobの実行スケジュールはDASHBOARDならびにJOBSから確認できます。
Calendar機能
Calendar機能を利用すると、System全体またはProject単位でスケジュールされたJobの実行可否を制御できます。Calendar機能はスケジュール実行されるJobのみに適用され、その他の手動実行等のJobには適用されません。
参考: Calendars
- ProjectレベルのCalendarはプロジェクトの左メニューから設定できます。
月-金に実行されるスケジュールに、日本の祝日をBlackoutに追加するCalendarを組み合わせると、土日に加えて祝日の実行も抑止することが可能です。
Webhookをトリガーに実行#
RBAでWebhookを受信するためのURLを発行し、受信したWebhookをトリガーにJobを実行することができます。
Slack等の外部システムと連携してJobを実行するのに利用できる他、RBAのJobから異なるOptionsの値を含むWebhookを複数回送信し、他のJobを繰り返し実行することも可能です。
参考: Webhooks
-
プロジェクト画面から左メニューのWEBHOOKSを開き、+Create Webhook ボタンをクリック
-
NameにWebhookの名称、UserにJobを実行するユーザー名を入力します。
-
Handler Configurationタブを開き、Choose Webhook Pluginドロップダウンメニューから Advanced Run Job を選択
-
Actionsタブ内で、Webhookに含まれるデータとOptionsを紐づけます。
- date:
$.payload.date
- message :
$.payload.message
- date:
-
Saveをクリックして、表示されたURLとHTTP Authorization Stringをメモ帳などにコピーします。
-
Webhookを送信して、Jobが起動できるか確認します。Linux/Macの場合は、以下のcurlコマンドで実行できます。
Your-Webhook-URL
Your-Authorization-String
の部分は、上記でコピーしたURLとAuthorization Stringに置き換えてください。curl --request POST \ --url 'https://Your-Webhook-URL' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --header 'Authorization: Your-Authorization-String' \ --data '{ "payload": { "date": "2024-12-31", "message": "Triggered by a webhook" } }'
次はPagerDutyから手動でJobを起動する方法を学びます。