Cloud Workflowsで引数を変えて一括実行する

はじめに

GMOアドマーケティングの吉岡です。
前回はCloudWorkflowsを紹介しましたが、BigQueryにあるレポートをCloudSQLにインポートするWorkflowsを作成することができました。
引数に日付を指定して別にインポート過去分のレポートを実行するのに一括で実行したかったので、調査しました。

Cloud Workflowsとは?

Cloud Workflowsとは、Google CloudとHTTPベースのAPIサービスをサーバーレスワークフローと統合するサービス。
詳細はこちら→ Cloud Workflows公式ページ

どんなことができるかは前回の記事を参照ください。

一括実行

一括実行するためには以下の4つが必要だと思います。

  • コマンド実行できること
  • 引数を指定できること
  • スクリプト作成
  • 実行環境

コマンド実行

コマンドに関してはこちらのgcloud workflows runが使えそうです。

gcloud workflows run

引数指定

引数についてはわかりづらく、リファレンスのサンプル通りに実行してもうまくいかなかったですが、dataを使い微修正することで動作することを確認しました。

スクリプト作成

次のようなrubyスクリプトを書いて、前回作成したworkflow名を指定して実行します。

実行環境

はじめはローカルからgcloudコマンドを使い実行していましたが、ネット接続が切れたタイミングでワークフローが失敗してしまうため、cloud shellを使うのが良さそうです。

GCPの右上にcloud shellをアクティブにするボタンがあります。

こちらをクリックすると画面下にcloud shellが表示されます。

rubyコマンドはインストールされているため、先ほどのrubyスクリプトをセットして実行することができます。

gcloudコマンドをはじめに実行するときは承認が必要なので、一度実行しておいた方が良さそうです。

まとめ

今回はGoogle Cloud Workflowsで、一括実行する方法を紹介しました。
一括実行の需要はあると思いますが、実際やろうと思うと調べることも多いと思うので、参考にしてみてください。

参考リンク