1
Help us understand the problem. What are the problem?

posted at

Cloud Functions (Go言語) & PubSub & Cloud Scheduler を利用してcronを実現する

方法を3ステップで解説します

STEP1 トピックを作成する

GCP の PubSub のコンソールからトピックを作成する

名前は、「hello-functions」にしました

image.png

STEP2 メッセージを受信して起動するアプリケーションを Cloud Functions にデプロイする

コード

GCP の Cloud Functions のコンソールから「関数の作成」を選択して出てくるテンプレートと同じ内容です

hello_functions.go
package p

import (
	"context"
	"log"
)

type PubSubMessage struct {
	Data []byte `json:"data"`
}

func HelloPubSub(ctx context.Context, m PubSubMessage) error {
	log.Println(string(m.Data))
	return nil
}

gcloud (CLI) でデプロイ

ここで--entry-pointを指定しないといけなそうですが、指定しなくても動きました(エクスポート(関数名の先頭が大文字)している関数が1つだからかな?)

gcloud functions deploy HelloPubSub --runtime go116 --trigger-topic=hello-functions --project <firebaseのプロジェクト名>

STEP3 Cloud Scheduler で定期的にメッセージを送信する

以下のページを参考に、Cloud Scheduler を設定する

Cloud Functionsを定期実行させてみる | DevelopersIO

参考

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
1
Help us understand the problem. What are the problem?