Creating Eventarc triggers with Terraform
Terraform is increasingly the preferred tool for building, changing, and versioning infrastructure in Google Cloud and across clouds. In an earlier post, I showed how to create Eventarc triggers using Google Cloud Console or via the command line with
gcloud. In this post, I show how to create the same triggers with the google_eventarc_trigger Terraform resource.
Define a Cloud Run service as an event sink
Before you can create a trigger, you need to create a Cloud Run service as an event sink for the trigger. You can use Terraform’s google_cloud_run_service resource to define a Cloud Run service:
Define a Pub/Sub trigger
A Pub/Sub trigger connects a Pub/Sub topic to a Cloud Run service.
As a reminder, here’s how you can create a Pub/Sub trigger using
The same Pub/Sub trigger looks like this as a Terraform resource:
Note: There’s a slight difference in how events are filtered in
gcloud vs. Terraform. In
gcloud, events are filtered with the
--event-filters flag; whereas in Terraform,
matching_criteria is used. This is for legacy reasons and hopefully will be corrected in the future.
Define an Audit Log trigger
An Audit Log trigger connects various Google Cloud services with Audit Logs to a Cloud Run service. Here’s what an Audit Log trigger for the Cloud Storage
storage.object.create event looks like in Terraform:
Deploy with Terraform
Deploying resources with Terraform usually involves three steps:
1. Initialize Terraform:
2. See the planned changes:
terraform plan -var="project_id=YOUR-PROJECT-ID" -var="region=YOUR-GCP-REGION"
3. Create resources:
terraform apply -var="project_id=YOUR-PROJECT-ID" -var="region=YOUR-GCP-REGION"
After a few minutes, all the resources (a Cloud Run service and two2 Eventarc triggers) will be created. You can double-check the list of triggers:
gcloud eventarc triggers list --location YOUR-GCP-REGION
This was a quick overview of how to create Eventarc triggers with Terraform. As always, feel free to reach out to me on Twitter @meteatamel for any questions or feedback.
A closer look at locations in Eventarc
Back in August, we announced more Eventarc locations, taking the total number to more than 30. An Eventarc location usually refers to the single region that the Eventarc trigger gets created in. However, depending on the trigger type, the location can be more than a single region.
By Mete Atamel • 4-minute read