After you create and deploy your function with Cloud Run, you can set your function to execute in response to various scenarios by specifying a trigger.
This page provides an overview of the triggers supported by Cloud Run functions.
Types of triggers
By default, all functions deployed on Cloud Run are
Cloud Run source-deployed services
that have an HTTP endpoint (run.app
URL).
How your function is invoked or triggered depends on the type of function you specify when writing your code.
- CloudEvent triggers Reacts to events within your Google Cloud project and corresponds to CloudEvents functions (also called event-driven functions). You must use Eventarc, Google's implementation of the CloudEvents spec that supports building event-driven architectures, to trigger functions in response to specified events.
- HTTP triggers: Reacts to HTTP(S) requests and correspond to HTTP functions. You can use other Google Cloud services (non-Eventarc) as an event provider to invoke the function through HTTP(S) requests.
To trigger a function to react to events within your Google Cloud project, you specify triggers as part of deploying the function in the Google Cloud console or after function is deployed when using the gcloud CLI.
You cannot bind the same function to more than one trigger at a time, but you can have the same event cause multiple functions to execute by deploying multiple functions with the same trigger settings.
Example triggers
The following are example triggers supported by Cloud Run functions:
CloudEvent triggers:
- Pub/Sub events triggered by Eventarc
- Cloud Storage events triggered by Eventarc
- Firestore events triggered by Eventarc
- General Eventarc triggers
- Supports any event type supported by Eventarc, including 90+ event sources using Cloud Audit Logs
HTTP triggers:
- Invoke with an HTTP request
- Invoke services as part of a workflow with Workflows
- Invoke services on a schedule with Cloud Scheduler
- Use Cloud Tasks to execute asynchronous tasks
- Trigger services from a Pub/Sub push subscription
- Note that Pub/Sub messages can be routed directly to a function through HTTP requests, or wrapped under Eventarc as a CloudEvent trigger.
All CloudEvents functions use Eventarc for event delivery. Pub/Sub triggers and Cloud Storage triggers are implemented as particular types of Eventarc triggers.
Additional triggers using Pub/Sub and webhooks
Because Cloud Run functions can be triggered by messages on a Pub/Sub topic, you can integrate Cloud Run functions with any other Google service that supports Pub/Sub as an event bus. In addition, by using HTTP triggers you can also integrate with any service that provides HTTP callbacks (webhooks). The following sections describe some example integrations.
Cloud Logging
Cloud Logging can route logs to a Pub/Sub topic, where they can then be consumed by Cloud Run functions. See Configure and manage sinks in the Cloud Logging documentation for more information.
Cloud Scheduler
You can schedule an HTTP function by creating a Cloud Scheduler job that triggers an action using HTTP.
You can also schedule a CloudEvent function when your function should be triggered directly in response to events within your Google Cloud project; for example, when a message is published to a Pub/Sub topic.
Cloud Tasks
Cloud Tasks HTTP Target tasks enable you to run task handlers at any HTTP endpoint, so an HTTP function with an HTTP trigger can be used as a task handler. You can also use tasks to throttle or rate-limit function invocations. See Create HTTP Target tasks in the Cloud Tasks documentation for more information.
Gmail
Using the Gmail Push Notification API, you can send Gmail events to a Pub/Sub topic and consume them with Cloud Run.