Desplegar Google Cloud Run con Terraform.

3 min de lectura Ver original en Hashnode
Compartir:

Seguimos en la serie de ejemplos de despliegue de servicios de Google Cloud Platform (GCP) con Terraform. Hoy vamos a desplegar Google Cloud Run utilizando el mdulo oficial de Google para Terraform y el recurso de Terraform directamente.

Configuracin Google

Prerrequisitos:

Cuenta de Google Cloud Platform

gcloud instalado y configurado

API habilitadas en la consola de Google Cloud Platform

Terraform instalado

Verificamos que estamos logueados desde la consola y que estamos parados en el proyecto donde queremos desplegar nuestros Cloud Run

$ gcloud auth list # Output gcloud terraform-functions# Credentialed Accounts# ACTIVE ACCOUNT# * xxxxxx@gmail.com

Configuramos el proyecto sobre el que queremos trabajar:

gcloud config set project xxxxxx # Output gcloud terraform-functions# Updated property [core/project].

Configuramos las credenciales para que el Terraform pueda tomarlas y realizar el despliegue

gcloud auth application-default login# Output # https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=XXXXXX-XXX# Credentials saved to file: [/Users/XXXXX/.config/gcloud/application_default_credentials.json]# These credentials will be used by any library that requests Application Default Credentials (ADC).# Quota project "terraform-functions" was added to ADC which can be used by Google client libraries for billing and quota. Note that some services may still bill the project owning the resource.

Con esta configuracin pasamos al cdigo de Terraform que analizaremos en el siguiente paso.

Repositorio Terraform

El cdigo de los ejemplos mostrados en este post estn todos en el siguiente repositorio, en la carpeta cloud-run

https://github.com/olcortesb/tf-gcp-samples/tree/main/cloud-run

En esta carpeta estn los ejemplos de despliegue con Mdulo y con Recursos:

📘 Despliegue con Mdulo:

El despliegue con mdulo lo realic utilizando el mdulo oficial de Google:

https://github.com/GoogleCloudPlatform/terraform-google-cloud-run

// cloud-run/cloudrun-from-module.tfmodule "cloud_run" { source = "GoogleCloudPlatform/cloud-run/google" version = "~> 0.10.0" # Required variables service_name = "hello-run-module" project_id = var.project_id location = var.region image = "gcr.io/cloudrun/hello"}

📃 Despliegue con el Recurso:

El despliegue del cloud run de recurso se realiz con el recurso oficial de terraform para cloud run v2:

https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service

// cloud-run/cloudrun-from-scratch.tfresource "google_cloud_run_v2_service" "default" { name = "hello-run-resource" location = var.region client = "terraform" ingress = "INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER" template { containers { name = "hello-run-resource" image = "gcr.io/cloudrun/hello" } }}resource "google_cloud_run_v2_service_iam_member" "noauth" { location = google_cloud_run_v2_service.default.location name = google_cloud_run_v2_service.default.name role = "roles/run.invoker" member = "allUsers"}

Una vez revisadas nuestras configuraciones

terraform planterraform apply

Resultados:

En la consola podemos ver los dos cloud Run desplegados con cada mtodo.

La principal diferencia es con la configuracin por default, el mdulo se despliega con una autorizacin que permite invocar el cloud run din balancer. Mientras el recurso necesitara ms configuracin para acceder fuera de una VPC.

Al acceder a la URL en funcin del mtodo que elijamos veremos la siguiente pgina que indica que el contenedor s despleg correctamente.

Borrar la infraestructura

Luego que terminemos las pruebas recordar hacer un

terraform destroy

Gracias por leer

Saludos.

Referencias

https://github.com/olcortesb/tf-gcp-samples/tree/main/cloud-run

https://github.com/GoogleCloudPlatform/terraform-google-cloud-run

https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service

https://cloud.google.com/functions/docs/concepts/overview?hl=es-419

https://cloud.google.com/run/docs/deploy-functions?hl=es-419#terraform


Artículo original: Desplegar Google Cloud Run con Terraform.