【GCP】Cloud Functionsを定期実行したい

はじめに

GCPのCloud Functionsを定期実行する方法を解説していきます。

Cloud Functionsの基本的な使い方として、Pythonの関数を実行する方法は下記で紹介しています。

【GCP】PythonでCloud Functions
はじめにGCPのCloud FunctionsでPythonを実行する方法を紹介していきます。Cloud FunctionsとはCloud Functionsは、サーバーレスでコードを実行できるFaaS(Functions as a ...

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ジョブサービスです。定期的にジョブを実行することができます。

Cloud Scheduler  |  Google Cloud
フルマネージド cron サービスにより、バッチ処理、ビッグデータ ジョブ、クラウド インフラストラクチャ オペレーションなど、実質的にほぼすべてのジョブをスケジューリングできます。障害時に自動的に再試行させることも可能です。

料金については、下記を参照してください。

料金  |  Cloud Scheduler  |  Google Cloud
Cloud Scheduler の料金を確認する

Cloud Pub/Subとは

Cloud Pub/Subは、メッセージングサービスです。Publisherと呼ぶメッセージの送信者とSubscriberと呼ぶメッセージの受信者を切り離すことができます。

Cloud Pub/Sub  |  Google Cloud
Pub/Sub は、柔軟で信頼性の高いリアルタイムのメッセージング サービスです。これにより、個々のアプリケーションによる非同期イベントのパブリッシュとサブスクリプションが可能になります。

料金については、下記を参照してください。

料金  |  Cloud Pub/Sub  |  Google Cloud
Pub/Sub の料金を確認する

定期実行の手順

ここから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

参考

タイトルとURLをコピーしました