方法を3ステップで解説します
STEP1 トピックを作成する
GCP の PubSub のコンソールからトピックを作成する
名前は、「hello-functions」にしました
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