created: 2024-10-01T05:31:00.564Z
GCP の Cloud Scheduler を gcloud で設定する
本当は terraform で設定した方が良さそうだけど、面倒くさい時に。
既存のジョブの一覧
gcloud scheduler jobs list \
--location="$GCP_DEFAULT_REGION" \
--project="$GCP_PROJECT_ID" \
--format=json |
jq '.[] | select(.name | test("'$JOB_NAME'"))'
新規作成
--schedule
は CRON の形式で書ける。
- eg:
CRON="30 9 * * 1,4,6"
gcloud scheduler jobs create http "$JOB_NAME" \
--project "$GCP_PROJECT_ID" \
--location "$GCP_DEFAULT_REGION" \
--uri "$APP_URL" \
--time-zone "JST" \
--schedule "$CRON" \
--http-method "POST" \
--message-body '{}'
更新
gcloud scheduler jobs update http "$JOB_NAME" \
--project "$GCP_PROJECT_ID" \
--location "$GCP_DEFAULT_REGION" \
--uri "$APP_URL" \
--time-zone "JST" \
--schedule "$CRON" \
--http-method "POST" \
--message-body '{}'
参考
- cron ジョブを管理する | Cloud Scheduler Documentation | Google Cloud
- google_cloud_scheduler_job | Resources | hashicorp/google | Terraform | Terraform Registry
料金
「1 日 1 回 HTTP リクエスト投げるだけ」とか思ってると、思ってるより高い。
ジョブあたり $0.10/月