This enables Cloud Scheduler to trigger Cloud Run endpoints when they are not public.

cr_run_schedule_http(uri, email, http_method = "GET", body = NULL)



The URI of your Cloud Run application


The service email that has invoke access to the Cloud Run application. If using cr_run and derivatives to make the email this will include (name)-cloudrun-invoker@(project-id) - see cr_run_email to help make the email.


The HTTP verb you have set up your Cloud Run application to receive


(optional) An R list object that will be turned into JSON via toJSON and turned into a base64-encoded string if you are doing a POST, PUT or PATCH request.


A HttpTarget object for use in cr_schedule


Ensure you have a service email with cr_email_set of format service-{project-number} with Cloud Scheduler Service Agent role as per

See also

cr_schedule_http and cr_run and cr_deploy_run

Other Cloud Scheduler functions: HttpTarget(), Job(), PubsubTarget(), cr_build_schedule_http(), cr_schedule_delete(), cr_schedule_get(), cr_schedule_list(), cr_schedule_pause(), cr_schedule_run()

Other Cloud Run functions: cr_jwt_create(), cr_plumber_pubsub(), cr_run_email(), cr_run_get(), cr_run_list(), cr_run()


if (FALSE) {
# for unauthenticated apps create a HttpTarget
run_me <- HttpTarget(
  uri = "",
  http_method = "GET"
  schedule = "16 4 * * *",
  httpTarget = run_me

# for authenticated Cloud Run apps - create with allowUnauthenticated=FALSE
cr_deploy_run("my-app", allowUnauthenticated = TRUE)

# deploying via R will help create a service email called my-app-cloudrun-invoker
#> [1] ""
if (FALSE) {
# use that email to schedule the Cloud Run private micro-service

# schedule the endpoint
my_run_name <- "my-app"
my_app <- cr_run_get(my_run_name)
email <- cr_run_email(my_run_name)
endpoint <- paste0(my_app$status$url, "/fetch_stuff")

app_sched <- cr_run_schedule_http(endpoint,
  http_method = "GET",
  email = email

  schedule = "4 16 * * *",
  httpTarget = app_sched