※ 2024年8月21日以降、ジョブワークフローは新仕様に変更されました。
詳しくはこちらのリンクからご確認ください
ジョブワークフローとは、順番に実行したい一連の運用ジョブがある場合に、それらを1つの「ワークフロー」としてまとめて管理・実行できる機能です。
ジョブワークフローで解決できること
「開発環境というタグの付いたEC2インスタンスに対して、毎日決まった時間にAMIを作成したうえでインスタンスを停止させる」という運用をしたいとします。
これを運用ジョブの機能だけで行おうとすると、下図のように2つのジョブ間を「Webhook後処理」と「HTTPトリガー」で以下のように連携させる必要があり、複数ジョブ間での後処理やトリガーの管理が煩雑になってしまいます。
このような場合にジョブワークフローを利用すると2つのジョブ間の連携を管理する必要がなくなり、下図のように、あらかじめ用意したジョブをジョブワークフローの中で実行順に並べるだけで済むようになります。
ジョブワークフローとしてまとめられた一連のジョブは、ジョブワークフロー単位で有効・無効を切り替えたり、ワークフロー全体を通しての実行成否をログとして確認できるようになります。
ただし、各ジョブのトリガーやアクション、後処理の設定については運用ジョブの機能と同じように各ジョブで個別に行う必要があります。
また、各ジョブの詳細な実行結果についても各ジョブのログを個別に参照する必要があります。
ジョブワークフローの使い方
ジョブワークフローを使うにあたっては、あらかじめジョブワークフローに組み込みたいジョブを、先頭ジョブおよび後続ジョブとして作成しておく必要があります。
先頭ジョブと後続ジョブは総称して「ワークフロー専用ジョブ」と呼ばれます。
注意:既存のジョブをワークフロー専用ジョブに変更することはできません。
1. 先頭ジョブとなるワークフロー専用ジョブを作成する
先頭ジョブを作成するには、ジョブを追加する際に「ワークフロー専用ジョブ」というチェックボックスをチェックします。
ワークフロー専用ジョブをチェックした場合、ステップ2でトリガーの選択肢として先頭ジョブ用のトリガーまたは後続ジョブ用の「トリガーなし」が選べるようになります。
先頭ジョブを作成する場合は「タイマートリガー」や「スケジュールトリガー」などを選択して、あとは通常通りにジョブを作成します。
2. 後続ジョブとなるワークフロー専用ジョブを作成する
後続ジョブを作成する場合も、先頭ジョブの場合と同様に「ワークフロー専用ジョブ」のチェックボックスをチェックします。
ステップ2ではトリガーの選択肢として「トリガーなし」を選択します。
この後は通常通りにジョブを作成します。
3. ワークフロー専用ジョブを確認する
ワークフロー専用ジョブは通常のジョブとは区別して扱われます。ワークフロー専用ジョブの一覧を確認するには、メニューの「運用ジョブ一覧」を表示したあとで「ワークフロー専用ジョブ」のタブをクリックします。
一覧において「トリガー」が「タイマー」と表示されているものが先頭ジョブ、「トリガーなし」と表示されているものが後続ジョブです。
4. ジョブワークフローを作成する
ジョブワークフローの作成は、メニューの「ジョブワークフロー」−「ワークフローの追加」から行います。
以下のようなジョブワークフローの追加フォームが表示されるので、各項目を入力してジョブを指定していきます。
項目名 | 説明 |
---|---|
ジョブワークフロー名 |
ジョブワークフローを識別するための任意の名前を入力します。 |
グループ |
利用したいジョブが属するグループを選択します。 |
ジョブの指定 |
実行したいジョブを1番目から順に指定してください。 ゴミ箱アイコンをクリックするとジョブの選択がキャンセルされます。 選択したジョブの詳細を確認したい場合は、右側に表示される「ジョブ詳細」をクリックすると別ウィンドウで確認できます。 |
1番目と2番目のジョブを指定したら、ページ下部の「登録」ボタンを押してジョブワークフローの作成を完了します。
注意:1番目のジョブとして選択できるのは先頭ジョブだけです。また、2番目以降のジョブとして選択できるのは後続ジョブだけです。
注意:ジョブワークフローは作成が完了した時点で有効となり、先頭ジョブのタイマートリガーの指定に応じて動き始めます。
5. ジョブワークフローの実行ログを確認する
ジョブワークフローの実行結果はジョブワークフロー実行ログとして記録され、メニューの「ジョブワークフロー」−「実行ログ一覧」から確認できます。
また、ジョブワークフローに含まれる各ジョブの詳細な結果については、ジョブワークフロー実行ログの詳細からリンクされている各ジョブの実行ログにて確認できます。
ジョブワークフローの動作のしかた
1つのジョブワークフローには、1つのジョブを「先頭ジョブ」として含めることができ、また1つ以上の「トリガーなし」ジョブを「後続ジョブ」として含めることができます。ジョブワークフローは先頭ジョブの設定にしたがって実行され、先頭ジョブのアクションが完了したら、後続ジョブのアクションを順次実行していき、すべてのジョブが完了すると終了します。
途中のジョブが失敗となった場合、そこでワークフローの実行は終了となります。
途中から再開させることはできません。
各ジョブの後処理の呼び出し順は保証されません。
前のジョブの後処理が次のジョブの実行開始よりも前に呼び出されるとは限らないため注意してください(前後する可能性があります)。
ジョブワークフローの制限
2022年9月時点でジョブワークフローには以下のような制限があります。
ジョブに関する制限
- ジョブワークフローに含められるジョブは最大で20件までです(先頭ジョブ1件+後続ジョブ19件)
- 同一のジョブを複数のジョブワークフローで共用することはできません
- 同一のジョブを1つのジョブワークフロー内で複数回実行させることはできません
- ワークフロー専用ジョブを個別に有効・無効に切り替えることはできません
実行に関する制限
- 実行中のジョブワークフローを途中で停止・キャンセルさせることはできません
- 途中のジョブが失敗した場合に、そこから再開させることはできません