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

2021.08.19
2024.03.24
クラウド
Cloud FunctionsCloud Pub/SubCloud SchedulerGCP

はじめに

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

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

unknown link

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

Cloud Scheduler  |  Google Cloud

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

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

料金  |  Cloud Scheduler  |  Google Cloud

料金  |  Cloud Scheduler  |  Google Cloud

Cloud Scheduler の料金を確認する

Cloud Pub/Subとは

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

アプリケーションとデータ統合用の Pub/Sub | Google Cloud

アプリケーションとデータ統合用の Pub/Sub | Google Cloud

イベントを Pub/Sub に取り込み、BigQuery、データレイク、データベースにストリーミングする、ストリーミング分析とサービス統合のためのメッセージング ミドルウェア

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

料金  |  Pub/Sub  |  Google Cloud

料金  |  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

参考

Support

\ この記事が役に立ったと思ったら、サポートお願いします! /

buy me a coffee
Share

Profile

author

Masa

都内のIT企業で働くエンジニア
自分が学んだことをブログでわかりやすく発信していきながらスキルアップを目指していきます!

buy me a coffee