Using Terraform Community Modules for GCP

45 minutes
  • 2 Learning Objectives

About this Hands-on Lab

An application team has developed a prototype of a containerized web application and need it deployed to Google Cloud for testing. After talking with the team about what the app needs to run, you have agreed that Cloud Run is the easiest way for them to get their container running. The team agreed to use Terraform to manage the cloud infrastructure, but they are on a tight timetable and do not have time to start from scratch. Using a community module found on the Terraform Registry, deploy the Cloud Run service. Once the service is deployed, update the Terraform code to output the service URL each time the Terraform configuration is applied. This way, the developers will not need to access the GCP console after each deployment, which will save them time.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Identify a Community Module for a Cloud Run Service, and Use It to Deploy the ‘gcr.io/cloudrun/hello’ Container as a Service
  • Find a Cloud Run community module on the Terraform Registry.
  • In Cloud Shell, create a terraform directory and a main.tf file in that directory.
  • Create a terraform block, defining version and provider information.
  • Create a cloud_run module, defining service information.
  • Execute terraform init.
  • Enable the Cloud Run API.
  • Execute terraform plan.
  • Execute terraform apply.
  • Check that the service was deployed.
Update the Terraform Code to Output the Cloud Run Service URL Each Time ‘terraform apply’ Is Executed
  • Check the outputs information in the Terraform Registry.
  • Create an output block in themain.tf file.
  • Run terraform apply.

Additional Resources

Lab Resources

  • Cloud Run Docs: Cloud Run is a GCP service that allows you to run containers without the overhead of managing the infrastructure.
  • Terraform Registry: The Terraform Registry contains Terraform providers and modules. Users can add community modules to the Registry so other users can use them.
  • Cloud Run Community Module: This is a commuity module that abstracts all the details of creating a Cloud Run service in Terraform and lets you deploy a service with just 5 arguments.
  • Terraform Outputs: Terraform supports outputs from resources, modules, and other objects. Outputs allow you to dynamically assign values that are only known at runtime.

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?