Terraform で Cloud Run (未認証) を Cloud Scheduler でスケジュール実行

概要

前回は Github Actions で Cloud Run をデプロイした。

今回は Cloud Run (未認証)を Cloud Scheduler でスケジュール実行する。

デプロイフローは2つ。

  • Cloud Scheduler は Terraform でデプロイ
  • Cloud Run は Github Actions でデプロイ

チュートリアル

Github Actions で CloudRun を作成(未認証アクセス可)

前回 Github Actions で作成した Cloud Run を流用。

作成された Cloud Run の URL 「https://test-cloudrun-vuoo7furta-uc.a.run.app」。

Cloud Scheduler 作成

Terraform の準備。

スケジューラ作成。

vi scheduler.tf
  • 8分ごとに target url を GET する
resource "google_cloud_scheduler_job" "job" {
  name             = "test-job"
  description      = "test http job"
  schedule         = "*/8 * * * *"
  time_zone        = "America/New_York"
  attempt_deadline = "320s"

  retry_config {
    retry_count = 1
  }

  http_target {
    http_method = "GET"
    uri         = "https://test-cloudrun-vuoo7furta-uc.a.run.app"
    #body        = base64encode("{\"foo\":\"bar\"}")
  }
}

デプロイ。

terraform init
terraform apply

GCP コンソール上で作成されたことを確認。

スケジュール実行

スケジューラの右端の「今すぐ実行」をクリックしたら即時実行される。

Cloud Run のコンソールより、 8 分毎に呼び出されていることが確認できた(9時00分と9時08分)。

ただ、呼び出し結果の Hello World は確認できないのね。
POST 系の方が実行結果わかりやすかった。

まとめ

Cloud Run 認証あり ver は次回。

デプロイフローが2つあるので、Terraform と Github Actions まとめていきたい。

参考

Terraform Registry

コメント

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