LoginSignup
2
1

More than 1 year has passed since last update.

Workflowsを触ってみる【GCP】

Last updated at Posted at 2022-03-27

やりたいこと

GCPのWorkflowsに入門する。
サンプルワークフローを作るところまでやってみる。

環境

  • Windows 10 Pro
  • Google Cloud SDK 378.0.0

Workflowsとは

公式ドキュメントより抜粋

ワークフローは、フルマネージドのオーケストレーション プラットフォームで、定義した順序(ワークフロー)でサービスを実行します。
これらのワークフローでは、
Cloud Run や Cloud Functions でホストされているカスタム サービス、
Cloud Vision AI や BigQuery などの Google Cloud サービス、
任意の HTTP ベースの API を含むサービスを組み合わせることができます。

CloudRunやCloudFunctionsといったAPIベースのGCPサービスや、外部APIをつなぎ込んでワークフローを作れるサービスのようです。

ワークフローを作成する別のGCPサービスとしては Cloud Composerがあります。
ComposerとWorkflowsの比較は、こちらのDataAnalyticsOnAirの資料13ページ目に非常に分かりやすく掲載されていました。

手順

ワークフローを作成する

以下のようなYAMLファイルを作成します。
「getTodo」と「returnValue」という2つのステップから成る、簡単なワークフローです。
JSONPlaceholderのWebAPIにリクエストを送りJSONデータを取得し、そのデータを返すワークフローを作成します。

sample_workflow1.yml
- getTodo:
    call: http.get
    args:
      url: https://jsonplaceholder.typicode.com/todos/1
    result: response
- returnValue:
    return: ${response.body}

CloudSDKがインストールされたターミナルでYAMLファイルがあるディレクトリに移動し、以下を実行すると、「sample_workflow1」という名前のワークフローがデプロイされます。

gcloud workflows deploy sample_workflow1 --source=sample_workflow1.yml

Workflowsのコンソールを確認すると、ワークフローがデプロイできたことが確認できました。
image.png

ターミナルで以下を実行すると、デプロイされたワークフローの一覧を確認することができます。

> gcloud workflows list
NAME                                                                             STATE   REVISION_ID  UPDATE_TIME
projects/hoge/locations/us-central1/workflows/sample_workflow1  ACTIVE  000001-9ef   2022-03-27T02:03:23.596046039Z

ワークフローを実行する

ターミナルから実行するときは以下を実行します。

> gcloud workflows run sample_workflow1

出力はこのようになります。resultのところに、APIのレスポンスが格納されているのが確認できます。

Waiting for execution [f374cb6e-9ead-40df-9fb7-e8c5c193688e] to complete...done.
argument: 'null'
endTime: '2022-03-27T02:13:29.401004603Z'
name: projects/hoge/locations/us-central1/workflows/sample_workflow1/executions/f374cb6e-9ead-40df-9fb7-e8c5c193688e
result: '{"completed":false,"id":1,"title":"delectus aut autem","userId":1}'
startTime: '2022-03-27T02:13:29.102838318Z'
state: SUCCEEDED
workflowRevisionId: 000001-9ef

Workflowsのコンソールから実行することもできます。
image.png

ワークフローを削除する

Workflowsは、実行したステップの数によって課金額が決まります。
外部へのリクエストのステップは1か月に2000ステップまで無料とのことですが、念のためワークフローを削除しておきます。

> gcloud workflows delete sample_workflow1

参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1