Cloud Scheduler は GCP のマネージド cron で、Cloud Functions / Cloud Run / Pub/Sub / HTTP を定期トリガーできます。 本記事では認証 + リトライ + 並列実行 + Workflows 連携まで実装パターンを網羅します。
# Function (Python)
import functions_framework
@functions_framework.http
def daily_report(request):
# 処理: BigQuery 集計 → Email 送信
from google.cloud import bigquery
client = bigquery.Client()
rows = client.query("SELECT COUNT(*) FROM analytics.events WHERE DATE(timestamp)=CURRENT_DATE()").result()
# SendGrid でメール送信...
return "OK"
# デプロイ
gcloud functions deploy daily-report \
--gen2 --runtime=python311 --region=asia-northeast1 \
--trigger-http --no-allow-unauthenticated \
[email protected]
# Scheduler 設定 (OIDC 認証)
gcloud scheduler jobs create http daily-report-job \
--schedule="0 9 * * *" \
--time-zone="Asia/Tokyo" \
--uri="https://asia-northeast1-PROJECT.cloudfunctions.net/daily-report" \
--http-method=POST \
--oidc-service-account-email=scheduler-sa@PROJECT.iam.gserviceaccount.com \
--oidc-token-audience="https://asia-northeast1-PROJECT.cloudfunctions.net/daily-report"# Pub/Sub Topic gcloud pubsub topics create daily-trigger # Scheduler → Pub/Sub gcloud scheduler jobs create pubsub daily-trigger-job \ --schedule="0 9 * * *" \ --time-zone="Asia/Tokyo" \ --topic=daily-trigger \ --message-body="run" # Subscriber 複数 (Fan-out) gcloud pubsub subscriptions create report-sub --topic=daily-trigger \ --push-endpoint=https://my-report-service.run.app gcloud pubsub subscriptions create cleanup-sub --topic=daily-trigger \ --push-endpoint=https://my-cleanup-service.run.app
# Cloud Run Job (Python)
import os, sys
def main():
task_index = int(os.environ.get("CLOUD_RUN_TASK_INDEX", 0))
task_count = int(os.environ.get("CLOUD_RUN_TASK_COUNT", 1))
# task_index に応じて担当範囲を処理
print(f"Processing task {task_index}/{task_count}")
if __name__ == "__main__":
main()
# Job 作成 (並列度 10)
gcloud run jobs create daily-batch-job \
--image=asia-northeast1-docker.pkg.dev/PROJECT/repo/batch:v1 \
--region=asia-northeast1 \
--tasks=10 \
--max-retries=3 \
--task-timeout=3600
# Scheduler から Job 実行
gcloud scheduler jobs create http run-daily-batch \
--schedule="0 2 * * *" \
--time-zone="Asia/Tokyo" \
--uri="https://asia-northeast1-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/PROJECT/jobs/daily-batch-job:run" \
--http-method=POST \
--oauth-service-account-email=scheduler-sa@PROJECT.iam.gserviceaccount.com# Workflow YAML
main:
steps:
- extract:
call: googleapis.cloudfunctions.v2.functions.call
args: { name: projects/.../functions/extract }
result: extract_result
- transform:
call: googleapis.cloudfunctions.v2.functions.call
args: { name: projects/.../functions/transform }
result: transform_result
- load:
call: googleapis.cloudfunctions.v2.functions.call
args: { name: projects/.../functions/load }
# Workflow デプロイ
gcloud workflows deploy etl-workflow --source=etl.yaml --location=asia-northeast1
# Scheduler → Workflow
gcloud scheduler jobs create http etl-trigger \
--schedule="0 3 * * *" \
--uri="https://workflowexecutions.googleapis.com/v1/projects/PROJECT/locations/asia-northeast1/workflows/etl-workflow/executions" \
--http-method=POST \
--oauth-service-account-email=scheduler-sa@PROJECT.iam.gserviceaccount.com| cron | 意味 |
|---|---|
0 9 * * * | 毎日 9 時 |
0 0 * * 0 | 毎週日曜 0 時 |
0 0 1 * * | 毎月 1 日 0 時 |
*/15 * * * * | 15 分ごと |
0 9-17 * * 1-5 | 平日 9-17 時毎時 |
Cloud Scheduler の cron 形式は?
Unix 標準 cron 形式 (例: <code>0 9 * * *</code> = 毎日 9 時)。タイムゾーン指定可能 (デフォルト UTC、Asia/Tokyo 推奨)。
Cloud Scheduler の料金は?
ジョブ 3 個まで無料、4 個目から $0.10/ジョブ/月。実行回数は無制限。安価で大量定期実行可。
Cloud Functions 2nd gen と Cloud Run どちらを使う?
シンプル関数 → Functions、複雑処理 → Cloud Run。バッチ用途は Cloud Run Job も選択肢。
実行時間制限は?
Cloud Functions 2nd gen HTTP: 60 分、Event: 60 分。Cloud Run Job: 7 日。長時間バッチは Cloud Run Job または GCE Batch。
失敗時のリトライは?
Scheduler は自動リトライ (最大 5 回、Exponential Backoff)、Cloud Functions は 7 日保持。失敗時は Pub/Sub Dead Letter Topic に転送可能。
認証はどうする?
Scheduler が呼び出す URL に OIDC token (Service Account ベース) 付与。Cloud Run / Functions 側は IAM (roles/run.invoker) で制限。
Workflows との使い分けは?
Scheduler = 単発トリガー、Workflows = 多段オーケストレーション。Scheduler → Workflows のパターンが現実的。
Cloud Run Job vs Cloud Functions Batch?
Cloud Run Job = Container ベース + Parallelism (タスク並列)、Cloud Functions は単一呼び出し。大量並列処理は Cloud Run Job。
関連記事・バッチ / 自動化
GCP Professional Cloud Developer (PCD) 完全ガイド|Cloud Run・GKE・CI/CD・APM
Google Cloud Professional Cloud Developer の試験範囲、Cloud Run / GKE / Cloud Build / Cloud Trace、AWS DVA / Azure AZ-204 比較、学習ロードマップを徹底解説。
Cloud Run 完全ガイド|サーバレス Container プラットフォームの全機能・料金・GKE 比較
Google Cloud Cloud Run の全機能ガイド。Service / Job、Autoscaling、コールドスタート対策、料金体系、GKE / Cloud Functions / App Engine との比較、認証・CI/CD 構成を解説。
GitHub Actions + GCP CI/CD 完全ガイド|Workload Identity・Cloud Run/GKE デプロイ (2026)
GitHub Actions で GCP CI/CD を構築する完全ガイド。Workload Identity Federation、setup-gcloud、Cloud Run / GKE デプロイ、Cloud Build 連携、Reusable Workflow、Self-hosted Runner、Secrets 管理を 2026 年最新版で網羅。
Google Cloud (GCP) 認定資格ロードマップ 2026 完全版|全 15 試験を体系化
Google Cloud 認定資格 全 15 試験 (Foundational 2 + Associate 3 + Professional 10) の 2026 年版ロードマップ。14/15 試験が日本語対応、Generative AI Leader (2025-05 新)・PMLE 2026-06 新版、AWS/Azure/GCP シェア比較、役割別ルートを日本語で整理。
※ Google Cloud は Google LLC の商標です。最新は Cloud Scheduler 公式 をご確認ください。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Google Cloud (GCP) 認定資格ロードマップ 2026 完全版|全 15 試験を体系化
Google Cloud 認定資格 全 15 試験 (Foundational 2 + Associate 3 + Pr...
Cloud Digital Leader (CDL) 完全ガイド|出題範囲・学習リソース・合格戦略
Google Cloud Cloud Digital Leader (CDL) の完全ガイド。6 ドメイン 92 bul...
Generative AI Leader (GAIL) 完全ガイド|Google Cloud 生成 AI 認定
Google Cloud Generative AI Leader (GAIL、2025-05-14 リリース) の完全...
Vertex AI 入門|Google Cloud 統合 ML プラットフォームの全機能
Google Cloud Vertex AI の入門解説。Vertex AI Studio / Agent Builde...
GCP Associate Cloud Engineer (ACE) 完全ガイド|試験範囲・受験料・学習ロードマップ
Google Cloud Associate Cloud Engineer (ACE) の試験範囲・受験料 125 US...