【GCP】Cloud Functionsを定期実行したい
はじめに
GCPのCloud Functionsを定期実行する方法を解説していきます。
Cloud Functionsの基本的な使い方として、Pythonの関数を実行する方法は下記で紹介しています。
【GCP】PythonでCloud Functions
はじめに GCPのCloud FunctionsでPythonを実行する方法を紹介していきます。
Cloud Functionsを定期実行する方法
Cloud Functionsを定期実行するには、Cloud Functions単体ではできません。
Cloud Functionsの定期実行は下記のサービスと連携して実現します。
- Cloud Scheduler
- Cloud Pub/Sub
Cloud Schedulerで定期的にジョブを実行して、Cloud Pub/Subで受け取り、Cloud Pub/SubをトリガーにCloud Functionsを実行します。
Cloud Schedulerとは
Cloud Schedulerは、cronジョブサービスです。定期的にジョブを実行することができます。
クイックスタート: cron ジョブをスケジュールして実行する | Cloud Scheduler Documentation | Google Cloud
Cloud Scheduler を使用して cron ジョブを作成、スケジュールして実行する方法について学習します。
料金については、下記を参照してください。
料金 | Cloud Scheduler | Google Cloud
Cloud Scheduler の料金を確認する
Cloud Pub/Subとは
Cloud Pub/Subは、メッセージングサービスです。Publisherと呼ぶメッセージの送信者とSubscriberと呼ぶメッセージの受信者を切り離すことができます。
アプリケーションとデータ統合用の Pub/Sub | Google Cloud
イベントを Pub/Sub に取り込み、BigQuery、データレイク、データベースにストリーミングする、ストリーミング分析とサービス統合のためのメッセージング ミドルウェア
料金については、下記を参照してください。
料金 | Pub/Sub | Google Cloud
Pub/Sub と Pub/Sub Lite の料金を確認する。
定期実行の手順
ここからCloud Functionsを定期実行する具体的な手順を紹介していきます。
まずは事前準備として、下記のAPIを有効化しておきます。
- Cloud Functions
- Cloud Pub/Sub
- Cloud Scheduler
Cloud Functionsで関数の作成
まずはCloud Functionsで定期実行したい関数を作成していきます。
こちらから関数を作成します。
関数名とリージェンを設定して、トリガーのタイプを「Cloud Pub/Sub
」にします。
Cloud Pub/Subを指定すると、トピックを指定する必要があります。「トピックを作成する」をクリックして、トピックを作成します。
トピックを作成したら、「次へ」をクリックします。
次に実際に実行する関数の実装をします。ここではPythonを指定してます。
関数を実装したらCloud Functionsをデプロイします。
Cloud Schedulerでジョブの作成
次に定期的に実行するジョブを作成します。
ジョブの設定をします。
「頻度」はcron形式で指定します。ここでは5分おきに実行されるように設定しています。
設定が完了したら「作成」をクリックします。
ジョブの実行
指定したタイミングでジョブが実行されます。「今すぐ実行」で任意のタイミングでの実行もできます。
結果
Cloud Functionsの詳細画面の「ログ」を確認するとジョブの実行されたタイミングでCloud Functionsが実行されているのがわかります。
まとめ
Cloud Functionsを定期実行するには以下を連携して実現します。
- Cloud Scheduler
- Cloud Pub/Sub
- Cloud Functions