Serverless

Eventarc brings eventing to Cloud Run and is now GA

eventarc.jpg

Back in October, we announced the public preview of Eventarc, as new eventing functionality that lets developers route events to Cloud Run services. In a previous post, we outlined more benefits of Eventarc: a unified eventing experience in Google Cloud, centralized event routing, consistency with eventing format, libraries and an ambitious long term vision. 

Today, we're happy to announce that Eventarc is now generally available. Developers can focus on writing code to handle events, while Eventarc takes care of the details of event ingestion, delivery, security, observability, and error handling.

To recap, Eventarc lets you:

  • Receive events from 60+ Google Cloud sources (via Cloud Audit logs).

  • Receive events from custom sources by publishing to Pub/Sub. 

  • Adhere to the CloudEvents standard for all your events, regardless of source, to ensure a consistent developer experience.

  • Enjoy on-demand scalability and no minimum fees.

In the rest of the post, we outline some of the improvements to Eventarc since public preview.

gcloud updates

At GA, there are a few updates to Eventarc gcloud commands. 

First, you don’t need to specify beta in Eventarc commands anymore. Instead of gcloud beta eventarc, you can simply use gcloud eventarc

Second, --matching-criteria flag in public preview got renamed to --event-filters

Third, --destination-run-region is now optional when creating a regional trigger. If not specified by the user, it will be populated with the trigger location (specified via --location flag or eventarc/location property). 

For example, this is how you can create a trigger to listen for messages from a Pub/Sub topic in the same region as the trigger:

  gcloud eventarc triggers create trigger-pubsub \
  --destination-run-service=${SERVICE_NAME} \
  --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished"

This trigger creates a Pub/Sub topic under the covers. 

If you want to use an existing Pub/Sub topic, Eventarc now allows that with an optional --transport-topic gcloud flag. There’s also a new command to list available regions for triggers. More on these below. 

Bring your own Pub/Sub topic

In public preview, when you created a Pub/Sub trigger, Eventarc created a Pub/Sub topic under the covers for you to use as transport topic between your application and a Cloud Run service. This was useful if you need to easily and quickly create a Pub/Sub backed trigger. But  it was also limiting; there was no way to create triggers from an existing Pub/Sub topic or set up a fanout from a single Pub/Sub topic.

With today’s GA, Eventarc now allows you to specify an existing Pub/Sub topic in the same project with the --transport-topic gcloud flag as follows:

  gcloud eventarc triggers create trigger-pubsub \
  --destination-run-service=${SERVICE_NAME} \
  --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished"
  --transport-topic=projects/${PROJECT_ID}/topics/${TOPIC_NAME}

Regional expansion

In addition to the regions supported at public preview (asia-east1, europe-west1, us-central1, us-east1 and global), Eventarc is now available from four additional Google Cloud regions: asia-southeast1, europe-north1, europe-west4, us-west1. This lets you create regional triggers in eight regions or create a global trigger and receive events from all regions. 

There’s also a new command to see the list of available trigger locations:

  gcloud eventarc locations list

You can specify trigger locations with --location flag with each command:

  gcloud eventarc triggers create trigger-pubsub \
  --destination-run-service=${SERVICE_NAME} \
  --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished"
  --location=europe-west1

Alternatively, you can also set the eventarc/location config to set it globally for all commands:

  gcloud config set eventarc/location europe-west1

Next steps

We’re excited to bring Eventarc to general availability. Getting started with Eventarc couldn’t be easier, as it does not require any setup to quickly set up triggers to ingest events from various Google Cloud sources and direct them to Cloud Run services. Check out our documentation, try the Quickstart guide or our codelab.