Docs › Google Cloud Scheduler with Cloud Run jobs and Cloud Functions with RunVouch
Google Cloud Scheduler with Cloud Run jobs and Cloud Functions with RunVouch
Cloud Scheduler counts an HTTP 2xx as success and retries on anything else. Everything that goes wrong inside a 2xx is yours to find.
How it runs on Google Cloud Scheduler
For a Cloud Run job, wrap the container command with rv run (the image needs Python 3). For an HTTP-triggered function, use the two HTTP calls or the Python client inside the handler.
Store the key
Reference the key from Secret Manager as an environment variable on the Cloud Run job or function (--set-secrets RUNVOUCH_KEY=runvouch-key:latest).
Wrap the job
# Cloud Run job, container command gcloud run jobs create nightly-report --image gcr.io/PROJECT/report \ --set-secrets RUNVOUCH_KEY=runvouch-key:latest \ --command rv --args run,nightly-report,--evidence-file,/tmp/report.html,--,python,report.py # schedule it gcloud scheduler jobs create http nightly-report --schedule "0 2 * * *" \ --uri "https://run.googleapis.com/v2/projects/PROJECT/locations/REGION/jobs/nightly-report:run" \ --oauth-service-account-email [email protected]
rv fails open: if RunVouch is unreachable the job still runs and you get one warning line.
Register the cadence and caps
rv agent nightly-report --cadence 24h --grace 30m --max-runtime 1h --evidence --cap-run-cost 2
Register the agent once, from anywhere with the key. Cadence is what turns a schedule that stopped into an alert; --evidence makes a run without evidence a failure; the caps pause the agent when it overspends.
What goes silent on Google Cloud Scheduler
- A paused scheduler job, or one whose service account lost
run.jobs.run, fails on the scheduler side; the alerting policy for that is not created by default. MISSED needs no policy. - A function that returns 200 after catching an exception is a success to Scheduler and to Cloud Monitoring.
- Scheduler retries plus function retries can run an agent several times an hour; the daily cost cap holds regardless.
What RunVouch detects
| Alert | What it means here |
|---|---|
| MISSED | cadence plus grace passed and no run started |
| FAILED | non-zero exit or a reported failure, with the stderr excerpt |
| NO_EVIDENCE | the run said ok but the file, URL or assertion you required is missing |
| STALLED | a run started and never ended within max runtime |
| RETRY_STORM | the same tool called with identical input many times in one run |
| BUDGET_RUN / BUDGET_DAY | cost cap crossed; the agent is paused until you resume it |
| DRIFT | duration or output size far off its 7-run baseline |
Need a key? Get a free key · Stuck? contact