# ワークフローオブジェクトの取得 Treasure Dataは、Treasure Dataコンソール外で特定のワークフローの詳細を表示するために使用できるAPIを提供しています。以下の図1は、APIによって返されるワークフローオブジェクトの例を示しています。開始日と終了日を含むワークフローのスケジュール情報は、16〜20行目に表示されています。 以下のRESTfulエンドポイントを呼び出すことで、Treasure Data内のワークフローオブジェクトのリストを取得できます: `https://api.treasuredata.com/api/workflows` この呼び出しによって返されるワークフローオブジェクトには、ワークフローのIDとワークフローのスケジュール情報の両方が含まれています(図1を参照)。 このエンドポイントは以下のパラメータで呼び出すことができます: * パラメータなし–最小のIDから始まる200個のワークフローオブジェクトを返します。これは、システムで定義されているワークフローが少ない場合にのみ適したオプションです。 * count--返される結果を指定された数に制限します。これにより、デフォルトの200ワークフローオブジェクトの制限を克服できますが、大きなcountを指定すると、レスポンスが大幅に遅延し、結果の解析に追加の時間が必要になる場合があります。countはint32として定義されているため、200万以上のオブジェクトを指定できます。 * last_id–結果を、指定された数より大きいIDを持つ最初の200個のワークフローオブジェクトに制限します。これは、ワークフローID番号がどのようなものか大まかに把握している場合に便利です。例えば、現在のワークフローIDが3456のような場合、last_idを約3400に設定して、呼び出しの結果を制限できます。 * name_pattern–結果を、指定したパターンに一致する名前を持つワークフローオブジェクトに制限します。ワークフローオブジェクトの命名規則に従っている場合、またはワークフローの名前がわかっている場合、これがワークフローオブジェクトを表示する最も効率的な方法です。 レスポンスの形式は未フォーマットのJSONです。ただし、読みやすさのために、以下の例のレスポンスはJSONフォーマットツールを通してパイプされています。 ## countを使用したAPI呼び出しの例 ```bash $ curl -H 'Authorization: TD1 ${TD_API_KEY}' \ 'https://api.treasuredata.com/api/workflows/?count=2000' | python -m json.tool ``` ```json { "workflows": [ { "id": "334", "name": "myredshift", "project": { "id": "14", "name": "myredshift" }, "revision": "a56dfb4e8eca3214ad520b45b2c2d1ea", "timezone": "UTC", "config": { "_export": { "user": "awsuser", "host": "td.ckw8m7vbvvvn.us-east-1.td.amazonaws.com", "database": "digdag_test", "table": "td_wf_prod_test" }, "+prepare_table": { "redshift>": "queries/create_table.sql" }, "+load_data": { "redshift_load>": null, "from": "s3://digdag-test/td-workflow-test/testdata.csv.gz", "delimiter": ",", "gzip": true }, "+increament_count": { "redshift>": "queries/increment_count.sql" }, "+unload_data": { "redshift_unload>": null, "query": "select * from ${table}", "to": "s3://digdag-test/td-workflow-test/testdata.csv.gz", "allowoverwrite": true, "delimiter": ",", "gzip": true } } }, { "id": "349", "name": "simple_workflow", "project": { "id": "123", "name": "TestUI" }, . . . ``` ## last_idを使用したAPI呼び出しの例 ```bash curl -H 'Authorization: TD1 1/123456789abcdef0123456789abcdef012345678' 'https://api.treasuredata.com/api/workflows/?last_id=7828860' | python -m json.tool ``` ```json { "workflows": [ { "id": "7828866", "name": "wtt_workflow", "project": { "id": "234567", "name": "wtt_workflow" }, "revision": "ce2a35ae71a442b6abb3274551fe1692", "timezone": "UTC", "config": { "_export": { "td": { "database": "dbname.table" } }, "schedule": { "start": "2022-04-27", "minutes_interval>": 30, "end": "2022-04-30" }, "+task1": { "td_load>": "my_transfer_unique_id" }, "+task2": { "td_run>": "my_saved_query" } } }, { "id": "7829021", "name": "syndication", "project": { "id": "263789", "name": "journey_6543" }, . . . ``` ## name_patternを使用したAPI呼び出しの例 ```bash $ curl -H 'Authorization: TD1 ${TD_API_KEY}' \ 'https://api.treasuredata.com/api/workflows/?name_pattern=wtt' | python -m json.tool ``` ```json { "workflows": [ { "id": "7828866", "name": "wtt_workflow", "project": { "id": "234567", "name": "wtt_workflow" }, "revision": "ce2a35ae71a442b6abb3274551fe1692", "timezone": "UTC", "config": { "_export": { "td": { "database": "dbname.table" } }, "schedule": { "start": "2022-04-27", "minutes_interval>": 30, "end": "2022-04-30" }, "+task1": { "td_load>": "my_transfer_unique_id" }, "+task2": { "td_run>": "my_saved_query" } } } ] } ``` ## IDによるワークフローオブジェクトの取得 APIが1つのワークフローオブジェクトのみを返すようにしたい場合は、ワークフローオブジェクトIDを使用してAPIを呼び出すことができます。上記のすべての例では、ワークフローオブジェクトのIDが返されます。ただし、TDコンソールを使用してワークフローIDを確認することもできます: 1. TDコンソールでWorkflowsに移動します。 2. リストをスクロールするか、リストを検索して、ワークフローを見つけて選択します。 ワークフローのIDはブラウザのURLに表示されます。以下の例では、wtt_workflowのワークフローIDは7828866です。 ![](/assets/workflowid2.7f2d10aafae23fe040ff052cbc606e5fed4651a3def7bae6b3c20b4b26c1ba31.2e4f387b.png) ワークフローのIDを取得したら、次のようにAPI呼び出しを行うことができます: ```bash curl -H 'Authorization: TD1 ${TD_API_KEY}' \ 'https://api.treasuredata.com/api/workflows/7828866' | python -m json.tool ``` ```json { "id": "7828866", "name": "wtt_workflow", "project": { "id": "234567", "name": "wtt_workflow" }, "revision": "ce2a35ae71a442b6abb3274551fe1692", "timezone": "UTC", "config": { "_export": { "td": { "database": "dbname.table" } }, "schedule": { "start": "2022-04-27", "minutes_interval>": 30, "end": "2022-04-30" }, "+task1": { "td_load>": "my_transfer_unique_id" }, "+task2": { "td_run>": "my_saved_query" } } } ``` **図1:基本的なTreasure Dataワークフローオブジェクトの例** ```json { "id": "7828866", "name": "wtt_workflow", "project": { "id": "265740", "name": "wtt_workflow" }, "revision": "ce2a35ae71a442b6abb3274551fe1692", "timezone": "UTC", "config": { "_export": { "td": { "database": "dbname.table" } }, "schedule": { "start": "2022-04-27", "minutes_interval>": 30, "end": "2022-04-30" }, "+task1": { "td_load>": "my_transfer_unique_id" }, "+task2": { "td_run>": "my_saved_query" } } } ```