フローの実行方法

Executing Flows

フローの実行方法

はじめに

フローデザイナーで作成したフローは、以下に挙げる方法で実行できます。

ここでは、フローの実行方法について解説します。

フローを手動で実行

作成したフローは、フローデザイナー上で即時実行できます。実行方法には、以下に挙げる方法があります。

「フローの開始」ブロックのプロパティから実行

フローを作成・編集後、保存を実行したときのみ、この操作ができます。

  1. フローの開始」ブロックをクリック

    プロパティパネルが閉じている場合は、「フローの開始」ブロックをダブルクリックします。

  2. play_circle_outlineをクリック

ブロックメニューから実行

  1. フローの開始」ブロックのmore_vertをクリック
  2. フローの実行」をクリック

    フローを作成・編集後、保存を実行していないときは、「保存してフローを実行」をクリックします。

指定したブロックのみを実行

notificationsこの機能はアルファ版です。利用にあたっては利用申請が必要です。提供している機能は完全でない場合があり、下位互換性のない変更を加える可能性もあります。このため、テスト環境での使用に適しています。利用申請/機能改善の要望/不具合の報告などは、MAGELLAN BLOCKSのお問い合わせ機能からお願いします。

フローの開始」と「フローの終了」を除く、指定したブロックのみを実行します。

  1. 実行したいブロックのmore_vertをクリック
  2. ブロックメニューの「ブロックを実行(α)」をクリック

指定したブロック以降を実行

notificationsこの機能はアルファ版です。利用にあたっては利用申請が必要です。提供している機能は完全でない場合があり、下位互換性のない変更を加える可能性もあります。このため、テスト環境での使用に適しています。利用申請/機能改善の要望/不具合の報告などは、MAGELLAN BLOCKSのお問い合わせ機能からお願いします。

フローの開始」と「フローの終了」を除く、指定したブロック以降を実行します。

  1. 実行を開始したいブロックのmore_vertをクリック
  2. ブロックメニューの「フローをここから実行(α)」をクリック

フローを実行すると、フローの実行結果がログに出力されます。ログについては、「フローデザイナーの基本的な使い方」の「ログを見る」で解説しています。

フローを定期的に自動実行

作成したフローは、「毎週日曜日の深夜に実行」や「月末深夜に実行」などのように、定期的に実行できます。

定期実行のタイミングは、「フローの開始」ブロックプロパティのフローごとの「開始時間」プロパティと「開始時間を有効にする」プロパティで決まります。

「開始時間」プロパティと「開始時間を有効にする」プロパティの詳細については「ブロックリファレンス」の「フローの開始」ブロックの解説を参照してください。

定期実行は、「開始時間」プロパティを設定しただけでは、定期実行されません。「開始時間を有効にする」プロパティを「有効」に設定すると定期実行されます(初期値は「無効」になっています)。

フローを外部アプリから実行

フローは、外部アプリからREST APIを使って、実行・ステータス確認・変数値の取得などができます。

サポートするREST APIは、以下のとおりです。

フロー実行API

REST APIを使って、特定のフローを実行します。

エンドポイント
POST [Flow Designer Base URL]/flows/[ID].json
項目 説明
[Flow Designer Base URL]

実行したいフローが配置されているフローデザイナーのベースURL。ウェブブラウザーのアドレスバーで確認できる。

たとえば、アドレスバーに
https://exampleblocksboarda1b2c3d4.magellanic-clouds.net/?lo=ja
と表示されていた場合は、
https://exampleblocksboarda1b2c3d4.magellanic-clouds.net/
の部分がベースURLです。

[ID]

実行するフローのID。フローデザイナーで事前に設定。詳細は「フローデザイナーの基本的な使い方」の「フローごとの外部実行に関する設定」を参照。

リクエストヘッダー
キー名 説明
Content-Type application/json;charset=UTF-8 リクエストボディのデータ形式。JSON形式のデータをUTF-8エンコーディングで送信。
Authorization Bearer [API Token] [API Token]は、事前に[設定][APIトークン]で発行。

リクエストボディ
キー名 データ型 必須 説明
api_token string 任意

APIトークンを指定。Authorizationヘッダーの使用が難しい場合にのみ使用。

target_time string 任意

フローを開始する時間をISO 8601open_in_new形式で指定。

たとえば、日本時間の2023年11月9日午前0時に実行させたい場合は、"2023-11-09T00:00:00+09:00"と指定。

フロー内で、この時間を取得したい場合は、「%Y/%m/%d %H:%M:%S%z」のような%形式の文字列書式で参照可能。

dependent_job_id integer 任意

特定のフローが他のフローに依存する場合に使用されるID。このIDを設定すると、指定したフローが成功した場合のみ、次の依存するフローが実行される。これにより、データ処理やビジネスロジックが順序正しく、また効率的に行われることを保証する。

使用例:
  • データの前処理と本処理のフローを順序通りに実行する場合
  • 一つのフローで生成されたデータが、次のフローで使用される場合
  • エラーハンドリングで、前段のフローが成功した場合のみ後続のフローを実行する場合

たとえば、あるフローBが別のフローAの完了を待つ必要がある場合、フローBを実行する際にdependent_job_idにフローAのIDを指定。この設定により、フローAの実行が完了するまでフローBは実行されない。このIDは、このAPIを使用して、完了を待つフロー(ここでいうフローA)を起動した際のレスポンスで取得できる。

_job_name string 任意

ジョブに関連付けるラベル。
これを設定すると、フローデザイナーのログにおいて、ラベルが以下のように表示されます。

  • ログ一覧のフロー名欄:「flow_sample - foobar」と表示
    (フロー名:flow_sample、ラベル:foobar
  • ログの詳細情報:「info : Job Name: foobar」と表示
    (ラベル:foobar

この機能を用いることで、ログからジョブを簡単に識別し、管理できます。

任意のキー名 任意の型 任意

任意のキーと値が渡せる。フロー内では、キー名と同名の変数名でその値を参照可能。

たとえば、{"city": "Fukuoka,jp"}と指定した場合は、フロー内でcityもしくは${city}と指定することで、"Fukuoka,jp"を参照可能。

city${city}の使い分けは、変数名を指定するプロパティではcityと指定し、変数展開が指定できるプロパティでは${city}と指定する。

サンプルリクエスト
curl -X POST -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: Bearer 3a1b4c2d5e8f7g6h9i0j3k2l5m8n7o6p9q0r3t2u5v8w7x6y9z0a3b2c5d8e7f6g9h0" -d '{"city": "Fukuoka,jp"}' "https://exampleblocksboarda1b2c3d4.magellanic-clouds.net/flows/sample_flow.json"
レスポンス
キー名 データ型 説明
result string

フロー起動の成否。

  • true:フローの起動に成功
  • false:フローの起動に失敗

実行したフローの結果(ステータス)ではないことに注意。実行したフローのステータスは、「実行フローのステータス確認API」で確認。

job_id integer

実行したフローのジョブID。ジョブIDは、フローを実行するたびに自動採番されるフローデザイナー内でユニークな番号。

group_id string

実行したフローのグループID。グループIDは、フローを実行するたびに自動採番されるフローデザイナー内でユニークなID。

「ジョブ起動」ブロックからから起動された場合は、起動元フローのグループIDが継承される。

message string

フローの起動に失敗したときの理由を示すメッセージ。

サンプルレスポンス
  • 成功例:
    {"result":true,"job_id":28,"group_id":"0927debd-0fc7-4db6-a2fd-f650f41c3605"}
  • 失敗例:
    {"result":false,"message":"Flow Alias not found"}
  • 不正なAPIトークンを渡した場合:
    {"message":"Unauthorized"}

    このときのHTTPレスポンスのステータスは、401 Unauthorizedになる。

グループ情報の取得API

REST APIを使って、特定のグループの情報を取得します。

エンドポイント
GET [Flow Designer Base URL]/groups/[Group ID].json
項目 説明
[Flow Designer Base URL]

ステータスを確認したいフローが配置されているフローデザイナーのベースURL。ウェブブラウザーのアドレスバーで確認できる。

たとえば、アドレスバーに
https://exampleblocksboarda1b2c3d4.magellanic-clouds.net/?lo=ja
と表示されていた場合は、
https://exampleblocksboarda1b2c3d4.magellanic-clouds.net/
の部分がベースURLです。

[Group ID]

グループID。グループIDは、フローを実行するたびに自動採番されるフローデザイナー内でユニークなID。フロー実行APIのレスポンスで取得。

「ジョブ起動」ブロックからから起動されたフローは、起動元フローのグループIDが継承される。

リクエストヘッダー
キー名 説明
Authorization Bearer [API Token] [API Token]は、事前に[設定][APIトークン]で発行。

サンプルリクエスト
curl -X GET -H "Authorization: Bearer 3a1b4c2d5e8f7g6h9i0j3k2l5m8n7o6p9q0r3t2u5v8w7x6y9z0a3b2c5d8e7f6g9h0" "https://exampleblocksboarda1b2c3d4.magellanic-clouds.net/groups/09a73744-68b6-4681-809b-943ba1feda37.json"
レスポンス
キー名 データ型 説明
group_id string

グループID

jobs array

特定グループ内のフロー情報(オブジェクト)の配列。各フロー情報の内容は、以下のとおり。

キー名 データ型 説明
schedule_id integer

スケジュールID

flow_name string

フロー名(「フローの開始」ブロックの「ブロック名」)

job_id integer

ジョブID

status string

フローのステータス

"planning" フローの実行を準備している
"running" フローの実行中
"finished" フローの実行が成功
"failed" フローの実行に失敗
"canceled" フローの実行がキャンセルされた
target_time string

フローの開始時間(スケジュール上の予定)。ISO 8601open_in_new形式(例:"2023-11-09T00:00:00+09:00")。

started_at string

フローが実際に開始された時間。ISO 8601open_in_new形式(例:"2023-11-09T00:00:25+09:00")。

finished_at string フローの終了時間ISO 8601open_in_new形式(例:"2023-11-09T00:01:27+09:00")。
error_messages string

フローの実行に失敗した場合のエラーメッセージ。フローの実行成功時はnull。

サンプルレスポンス
  • 成功時:
    {"group_id":"09a73744-68b6-4681-809b-943ba1feda37","jobs":[{"schedule_id":54,"flow_name":"REST APIサンプル(グループ ID)","job_id":14,"status":"finished","target_time":"2023-10-24T10:48:25.890+09:00","started_at":"2023-10-24T10:48:26.000+09:00","finished_at":"2023-10-24T10:48:26.000+09:00","error_messages":null},{"schedule_id":53,"flow_name":"ジョブ起動サンプル","job_id":15,"status":"finished","target_time":"2023-10-24T10:48:25.890+09:00","started_at":"2023-10-24T10:48:27.000+09:00","finished_at":"2023-10-24T10:48:27.000+09:00","error_messages":null}]}
  • 失敗時(グループIDを間違えた場合):
    {"group_id":"09a73744-68b6-4681-809b-943ba1feda3","jobs":[]}
  • 不正なAPIトークンを渡した場合:
    {"message":"Unauthorized"}

    このときのHTTPレスポンスのステータスは、401 Unauthorizedになる。

実行フローのステータス確認API

REST APIを使って、実行フローのステータスを確認します。

エンドポイント
GET [Flow Designer Base URL]/flows/[ID]/jobs/[Job ID]/status.json
GET [Flow Designer Base URL]/flows/[ID]/jobs/[Job ID]/status.txt
項目 説明
[Flow Designer Base URL]

ステータスを確認したいフローが配置されているフローデザイナーのベースURL。ウェブブラウザーのアドレスバーで確認できる。

たとえば、アドレスバーに
https://exampleblocksboarda1b2c3d4.magellanic-clouds.net/?lo=ja
と表示されていた場合は、
https://exampleblocksboarda1b2c3d4.magellanic-clouds.net/
の部分がベースURLです。

[ID]

ステータスを確認するフローのID。フローデザイナーで事前に設定。詳細は「フローデザイナーの基本的な使い方」の「フローごとの外部実行に関する設定」を参照。

[Job ID] ステータスを確認するフローのジョブID。フロー実行APIのレスポンスで取得。
リクエストヘッダー
キー名 説明
Authorization Bearer [API Token] [API Token]は、事前に[設定][APIトークン]で発行。

リクエストパラメーター
キー名 必須 説明
api_token 任意

APIトークンを指定。Authorizationヘッダーの使用が難しい場合にのみ使用。

サンプルリクエスト
curl -X GET -H "Authorization: Bearer 3a1b4c2d5e8f7g6h9i0j3k2l5m8n7o6p9q0r3t2u5v8w7x6y9z0a3b2c5d8e7f6g9h0" "https://exampleblocksboarda1b2c3d4.magellanic-clouds.net/sample_flow/jobs/1/status.json"
レスポンス
  • .jsonの場合:
    キー名 データ型 説明
    status string

    フローのステータス

    "planning" フローの実行を準備している
    "running" フローの実行中
    "finished" フローの実行が成功
    "failed" フローの実行に失敗
    "canceled" フローの実行がキャンセルされた
  • .txtの場合:
    planning フローの実行を準備している
    running フローの実行中
    finished フローの実行が成功
    failed フローの実行に失敗
    canceled フローの実行がキャンセルされた
サンプルレスポンス
  • 成功例:
    {"status":"finished"}
  • 失敗例:
    {"message":"Job not found."}
  • 不正なAPIトークンを渡した場合:
    {"message":"Unauthorized"}

    このときのHTTPレスポンスのステータスは、401 Unauthorizedになる。

変数値の取得API

REST APIを使って、実行したフローの変数値を取得します。

エンドポイント
GET [Flow Designer Base URL]/flows/[ID]/jobs/[JOB ID]/variable.json
項目 説明
[Flow Designer Base URL]

ステータスを確認したいフローが配置されているフローデザイナーのベースURL。ウェブブラウザーのアドレスバーで確認できる。

たとえば、アドレスバーに
https://exampleblocksboarda1b2c3d4.magellanic-clouds.net/?lo=ja
と表示されていた場合は、
https://exampleblocksboarda1b2c3d4.magellanic-clouds.net/
の部分がベースURLです。

[ID]

ステータスを確認するフローのID。フローデザイナーで事前に設定。詳細は「フローデザイナーの基本的な使い方」の「フローごとの外部実行に関する設定」を参照。

[Job ID] ステータスを確認するフローのジョブID。フロー実行APIのレスポンスで取得。
リクエストヘッダー
キー名 説明
Authorization Bearer [API Token] [API Token]は、事前に[設定][APIトークン]で発行。

リクエストパラメーター
キー名 必須 説明
api_token 任意

APIトークンを指定。Authorizationヘッダーの使用が難しい場合にのみ使用。

variable 任意

変数名を指定して変数値を取得。変数名には、オブジェクト形式や配列形式データの一部を参照する記法が使用可能。

省略した場合は、変数_の値を取得。

サンプルリクエスト
curl -X GET -H "Authorization: Bearer 3a1b4c2d5e8f7g6h9i0j3k2l5m8n7o6p9q0r3t2u5v8w7x6y9z0a3b2c5d8e7f6g9h0" "https://exampleblocksboarda1b2c3d4.magellanic-clouds.net/flows/sample_flow/jobs/1/variable.json?variable=_.predictions"
サンプルレスポンス
  • 成功例:
    [{"score":[0.9999089241027832,9.108754602493718e-05],"key":"gs://my-storage-1703/blocks_ml_image_example/prediction/sample_01.jpg","label":"cat"},{"score":[0.0008647672948427498,0.9991353154182434],"key":"gs://my-storage-1703/blocks_ml_image_example/prediction/sample_02.jpg","label":"dog"}]
    
  • 失敗例(存在しない変数名を指定):
    {"status":500,"error":"Internal Server Error"}
    
  • 不正なAPIトークンを渡した場合:
    {"message":"Unauthorized"}
    

    このときのHTTPレスポンスのステータスは、401 Unauthorizedになる。

ジョブをグループ単位でキャンセルAPI

REST APIを使って、特定のグループのジョブをキャンセルします。キャンセル対象は、ステータスがplanning(フローの実行を準備している)およびrunning(フローの実行中)のジョブのみです。

エンドポイント
POST [Flow Designer Base URL]/groups/[Group ID]/cancel
項目 説明
[Flow Designer Base URL]

キャンセルしたいフローが配置されているフローデザイナーのベースURL。ウェブブラウザーのアドレスバーで確認できる。

たとえば、アドレスバーに
https://exampleblocksboarda1b2c3d4.magellanic-clouds.net/?lo=ja
と表示されていた場合は、
https://exampleblocksboarda1b2c3d4.magellanic-clouds.net/
の部分がベースURLです。

[Group ID]

グループID。グループIDは、フローを実行するたびに自動採番されるフローデザイナー内でユニークなID。フロー実行APIのレスポンスで取得。

「ジョブ起動」ブロックからから起動されたフローは、起動元フローのグループIDが継承される。

リクエストヘッダー
キー名 説明
Content-Type application/json;charset=UTF-8 リクエストボディのデータ形式。JSON形式のデータをUTF-8エンコーディングで送信。
Authorization Bearer [API Token] [API Token]は、事前に[設定][APIトークン]で発行。

リクエストボディ
キー名 データ型 必須 説明
api_token string 任意

APIトークンを指定。Authorizationヘッダーの使用が難しい場合にのみ使用。

サンプルリクエスト
curl -X POST -H "Authorization: Bearer 3a1b4c2d5e8f7g6h9i0j3k2l5m8n7o6p9q0r3t2u5v8w7x6y9z0a3b2c5d8e7f6g9h0" "https://exampleblocksboarda1b2c3d4.magellanic-clouds.net/groups/09a73744-68b6-4681-809b-943ba1feda37/cancel"
レスポンス
キー名 データ型 説明
job_ids array

キャンセルしたジョブIDの一覧(配列)。

サンプルレスポンス
{"job_ids":[101,102,103]}

ジョブをすべて削除API

REST APIを使って、指定したフローのジョブをすべて削除します。

エンドポイント
DELETE [Flow Designer Base URL]/flows/[ID]/jobs.json
項目 説明
[Flow Designer Base URL]

ステータスを確認したいフローが配置されているフローデザイナーのベースURL。ウェブブラウザーのアドレスバーで確認できる。

たとえば、アドレスバーに
https://exampleblocksboarda1b2c3d4.magellanic-clouds.net/?lo=ja
と表示されていた場合は、
https://exampleblocksboarda1b2c3d4.magellanic-clouds.net/
の部分がベースURLです。

[ID]

ステータスを確認するフローのID。フローデザイナーで事前に設定。詳細は「フローデザイナーの基本的な使い方」の「フローごとの外部実行に関する設定」を参照。

リクエストヘッダー
キー名 説明
Authorization Bearer [API Token] [API Token]は、事前に[設定][APIトークン]で発行。

サンプルリクエスト
curl -X DELETE -H "Authorization: Bearer 3a1b4c2d5e8f7g6h9i0j3k2l5m8n7o6p9q0r3t2u5v8w7x6y9z0a3b2c5d8e7f6g9h0" "https://exampleblocksboarda1b2c3d4.magellanic-clouds.net/flows/1/jobs.json"
サンプルレスポンス
  • 成功例:
    {"result":true}
  • 失敗例:
    {"result":false,"message":"Flow Alias not found"}
  • 不正なAPIトークンを渡した場合:
    {"message":"Unauthorized"}

    このときのHTTPレスポンスのステータスは、401 Unauthorizedになる。

終了状態のジョブをすべて削除API

REST APIを使って、指定されたフローの終了状態のジョブをすべて削除します。ステータスが終了以外のものは削除されません。

エンドポイント
DELETE [Flow Designer Base URL]/flows/[ID]/finished_jobs.json
項目 説明
[Flow Designer Base URL]

ステータスを確認したいフローが配置されているフローデザイナーのベースURL。ウェブブラウザーのアドレスバーで確認できる。

たとえば、アドレスバーに
https://exampleblocksboarda1b2c3d4.magellanic-clouds.net/?lo=ja
と表示されていた場合は、
https://exampleblocksboarda1b2c3d4.magellanic-clouds.net/
の部分がベースURLです。

[ID]

ステータスを確認するフローのID。フローデザイナーで事前に設定。詳細は「フローデザイナーの基本的な使い方」の「フローごとの外部実行に関する設定」を参照。

リクエストヘッダー
キー名 説明
Authorization Bearer [API Token] [API Token]は、事前に[設定][APIトークン]で発行。

サンプルリクエスト
curl -X DELETE -H "Authorization: Bearer 3a1b4c2d5e8f7g6h9i0j3k2l5m8n7o6p9q0r3t2u5v8w7x6y9z0a3b2c5d8e7f6g9h0" "https://exampleblocksboarda1b2c3d4.magellanic-clouds.net/flows/1/finished_jobs.json"
サンプルレスポンス
  • 成功例:
    {"result":true}
  • 失敗例:
    {"result":false,"message":"Flow Alias not found"}
  • 不正なAPIトークンを渡した場合:
    {"message":"Unauthorized"}

    このときのHTTPレスポンスのステータスは、401 Unauthorizedになる。

フローのキャンセルとログの削除

実行中のフローのキャンセルやログの削除を行うには、フローデザイナーのログリスト左のチェックボックスをクリックします。

実行中のフローのキャンセルとログの削除方法

フローの実行時間が短い場合やフローの実行が終了間際の場合は、フローの実行をキャンセルできないことがあります。

実行に失敗したフローの再実行

実行に失敗したフローは、同じ変数や開始時刻で再実行ができます。

  • 実行に失敗したフローのみ再実行できます(ステータスが失敗のフローのみ)。
  • 変数は、実行に失敗したフローの起動時の変数を引き継ぎます。
    フロー終了時点の変数内容を引き継ぐわけではありません。
  • 開始時刻は、実行に失敗したフローの開始時刻を引き継ぎます。
    「開始時刻」は、定期実行・手動実行・フロー実行APIによる実行によって、異なります。
    • 定期実行:「フローの開始」ブロックの「開始時間」プロパティの値
    • 手動実行:フローの手動実行をMAGELLAN BLOCKSが受け付けた日時
    • フロー実行APIによる実行:手動実行と同じ。ただし、target_timeパラメーターが指定された場合は、そのパラメーターに指定された時刻。
  • フローの内容は、再実行時点の内容で実行します。
    実行失敗後に、フローを修正した場合、修正した内容で実行されます。

再実行の手順は、以下のとおりです。

  1. ログパネルから再実行したい、ステータスが失敗のフローをクリック
  2. 再実行」をクリック

この情報は役に立ちましたか?