Cloud SchedulerからWorkflowsへの呼び出し方法が新しくなったので触ってみた

 2024.03.06 Yudai Imai

アイキャッチ

はじめに

はじめまして、CI部の今井です。

最近、Google CloudのサービスであるCloud SchedulerからWorkflowsを呼び出す際の選択肢が増えていたことに気づき、驚きを覚えました。Cloud SchedulerのWorkflows呼び出しの設定方法が知らないうちにアップデートされ、とても簡単に呼び出せるようになっていたのです。このブログでは、呼び出しの設定方法のアップデートで何が変わったのかをご紹介したいと思います。

この記事では、新旧の設定方法を比較しながら、この変更がどれくらい便利なのか、そして新しい設定方法のメリットとデメリットを解説していきます。それではさっそく、Cloud SchedulerからWorkflowsを呼び出す新しい設定方法について解説していきます。

Cloud SchedulerとWorkflowsについて

簡単にはなりますが、今回利用する2つのサービスを紹介します。

Cloud Schedulerとは?

Google Cloudの公式では以下のように説明しています。

Cloud Schedulerは、エンタープライズクラスのフルマネージドcronジョブスケジューラです。バッチ処理、ビッグデータジョブ、クラウドインフラストラクチャオペレーションなど、実質的にほぼすべてのジョブをスケジューリングできます。 - Cloud Scheduler

簡単に言うと、cronジョブをクラウドで管理できるサービスで、定期的なレポート生成、バックアップ、データの同期などのタスクの呼び出しに使うには最適な選択肢です。

Workflowsとは?

Google Cloudの公式では以下のように説明しています。

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

簡単に言うと、複雑なプロセスや複数のステップを含むタスクを整理し、簡潔に自動化するための定義を行なうことができるサービスです。

なぜこれらのサービスを連携するのか

Cloud SchedulerとWorkflowsを組み合わせることにより、スケジュールドリブンの自動化を実現し、手作業によるエラーを削減しながら効率を高めることができます。さらに、Workflowsによって複数のステップを含むタスクが定義されるので、それぞれのステップをトラッキングしながら処理の流れを容易に管理できます。

新旧の呼び出し方法の詳細

それでは、新しくなったCloud SchedulerからWorkflowsの呼び出し方法の手順を説明していきたいと思います。あわせて、古い呼び出し手順もまだ利用することができるので、新しい手順を説明した後に簡単に説明するようにします。

今回利用するスケジュールの設定とWorkflowsのコードはGoogle Cloudの公式ドキュメントである「Workflows のスケジュール」を参考に作成させていただきます。

新しい呼び出し方法の手順紹介

公式ドキュメントのガイドにのっとって、各種サービスのAPIの有効化やサービスアカウントの作成、「myFirstWorkflow」といWorkflowsの作成までを実施します。

事前手順▼

APIの有効化からサービスアカウントの作成、権限の付与までをCloud Shellから実施します。

1-Feb-24-2024-09-22-27-0955-AM

2-2

3-3

Cloud Schedulerから呼び出すサンプルのWorkflowsの作成までを実施します。

4-2

5-2

それでは作成したWorkflowsを呼び出すCloud Schedulerを作成してみます!

まずはコンソールからCloud Schedulerのサービス画面に行き、「ジョブを作成」を押します。

6-1

スケジュールを公式ドキュメントのガイドにのっとり定義し、続行を押します。

7-2

そして、ここからが新しい手順になります。

続行を押した後に実行内容を構成しますというセクションになり、最初にターゲットタイプをプルダウンから指定します。このプルダウンに「Workflows(HTTP経由)」が新しく存在しているので、これを選択します。

8-1

「Workflows(HTTP経由)」を押すとワークフローの選択やサービスアカウントの指定、ワークフローの引数を設定できるようになるため、事前準備で作成していた「myFirstWorkflow」やサービスアカウント、そしてワークフローの引数を設定した後に、画面下部の作成を押します。

9-3

これで新しい手順でのスケジュールの作成が完了しました。

古い呼び出し方法の手順紹介

Cloud Schedulerでの古い呼び出し手順もまだ利用できるので、今回の設定を古い手順でも作成してみます。最初のスケジュールを定義するところまでは一緒のため、その後の実行内容を構成するのセクションを説明します。

まず、新しい手順の時と同様にターゲットタイプを指定しますが、この時にHTTPを選択します。

10-1

そうすると、以下のような画面になるため、ガイドにのっとって設定を行い、画面下部の作成を押します。

11-2

これで古い手順でのスケジュールの作成が完了しますが、違いは一目瞭然だったと思います。

新しい方法のメリットとデメリット

今回の新しい手順のメリットとデメリットを考えてみたいと思います。

メリット

シンプルな設定: 新しい方法は設定が簡素化されており、以前よりも迅速にスケジュールジョブを設定できます。これは時間を節約したい開発者にとって大きな利点です。

Workflowsのログレベルの設定が可能: 今回は設定していませんが、Cloud Scheduler側からWorkflowsのログレベルを指定できるようになっているため、柔軟な設定を行うことが可能になります。

統合の向上: Workflowsとの更なる統合により、スケジュールしたジョブとワークフローの連携がより密接になり、フリクションレスな体験が得られます。

デメリット

ドキュメントの不足: 今回利用した公式ドキュメントのガイドはまだ古いスケジュールの作成方法しか載っていません(2024年2月)。十分なドキュメントやベストプラクティスが提供されていないため、初期の導入を難しくする要因となり得ます。

移行の手間: 既存のスケジュールジョブを新しい形式に移行する必要はありませんが、新規で新しいジョブを作成する際の手順書などの見直しが発生する可能性があります。これは一時的に作業負荷を増加させるかもしれません。

おわりに

今回の記事では、Cloud SchedulerからWorkflowsを呼び出す際の新しい設定方法を紹介しました。この方法を使用することで、より簡単にCloud SchedulerからWorkflowsを呼び出すことができるようになります。

皆さんが新しいCloud SchedulerとWorkflowsの呼び出しの設定方法を採用する際に、この記事が一助となれば幸いです。次なるアップデートでまたお会いしましょう!


Cloud SchedulerからWorkflowsへの呼び出し方法が新しくなったので触ってみた

BACK TO LIST