Deploying a Pub/Sub Function through Terraform

30 minutes
  • 4 Learning Objectives

About this Hands-on Lab

Whenever possible, it’s important to automate processes in the cloud. One of the most important concepts in cloud automation is Infrastructure as Code (IaC), and one of the most dependable vehicles for implementing IaC is Hashicorp’s Terraform. In this hands-on lab, you’ll use Terraform to build the infrastructure for testing a Cloud Functions (2nd gen) function triggered by a message to a Cloud Pub/Sub topic. This will give you the experience you need to familiarize yourself with the process and methodology of IaC on Google Cloud with specific emphasis on working with Cloud Functions.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Enable the Necessary APIs

Enable all the APIs you’ll need to set up a Cloud Functions (2nd gen) function triggered by a Cloud Pub/Sub topic.

Set Up Your Terraform Code

Retrieve and customize the working files needed to accomplish your goal.

Implement Your Terraform Code

Execute the necessary commands in Cloud Shell to initiate, plan, and apply your Terraform code.

Test the Infrastructure

Trigger the Cloud Function and verify the results.

Additional Resources

In this scenario, your company is moving toward Infrastructure as Code in a big way, and your Cloud Functions team is definitely joining in. You decide to do a brief proof-of-concept to illustrate how Terraform can be used to generate a Cloud Functions (2nd gen) function, which is triggered by a message being sent to a Pub/Sub topic.


The working files needed to complete the lab have been provided in the GitHub repository for the course.

Docker command for initializing Terraform:

docker run -v $(pwd):/app -w /app hashicorp/terraform:1.3.7 init

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?