06 — Proyecto GCP y APIs
← Anterior: 05 — Configuración del proyecto y estado de Terraform
Antes de que Terraform pueda crear recursos, necesitamos un proyecto de GCP y debemos habilitar las APIs que Terraform gestionará.
Crear un proyecto de GCP
Si aún no tienes un proyecto de GCP, crea uno:
# Crear un nuevo proyecto
gcloud projects create mycoolproject-prod --name="My Cool Project"
# Establecerlo como tu proyecto activo
gcloud config set project mycoolproject-prod
Si ya tienes un proyecto, salta a establecer el proyecto activo:
Obtén tu ID de proyecto (lo necesitarás para Terraform):
Habilitar APIs de GCP
Terraform gestiona estos servicios de GCP, así que necesitamos habilitar sus APIs:
# Habilitar APIs necesarias para esta guía
gcloud services enable \
run.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com \
cloudscheduler.googleapis.com \
tasks.googleapis.com \
storage.googleapis.com \
secretmanager.googleapis.com
Estas APIs alimentan Cloud Run, Cloud Storage, Secret Manager y más.
ID de Proyecto vs Número de Proyecto
- Project ID — tu identificador único (ej.,
mycoolproject-prod) - Project Number — un identificador numérico (ej.,
123456789012)
Terraform usa ambos:
- project en la configuración del provider = ID del proyecto
- Algunos recursos necesitan el número de proyecto para enlaces de IAM
Obtén tu número de proyecto:
Agrega ambos a infrastructure/terraform.tfvars:
Terraform: Habilitar APIs vía recurso
Alternativamente, puedes dejar que Terraform habilite las APIs automáticamente usando el recurso google-project-service-enforcement. Agrega a main.tf:
# Habilitar APIs requeridas
resource "google_project_service" "apis" {
for_each = toset([
"run.googleapis.com",
"cloudbuild.googleapis.com",
"artifactregistry.googleapis.com",
"cloudscheduler.googleapis.com",
"tasks.googleapis.com",
"storage.googleapis.com",
"secretmanager.googleapis.com",
])
project = var.project_id
service = each.value
disable_dependent_services = false
disable_on_destroy = false
}
Este enfoque hace que la habilitación de APIs sea parte de tu estado de Terraform — útil para reproducibilidad.
Navegación
- 01 — Introducción: Qué vamos a construir
- 02 — Visión general de Terraform
- 03 — Servicios en la nube explicados
- 04 — Base de datos PlanetScale explicada
- 05 — Configuración del proyecto y estado de Terraform
- 06 — Proyecto GCP y APIs (Capítulo actual)
- 07 — Artifact Registry
- 08 — Gestión de Secretos
- 09 — Cloud Storage
- 10 — Service Accounts e IAM
- 11 — Cloud Run
- 12 — Trabajos en segundo plano y Scheduler
- 13 — Dockerfile
- 14 — Primer Despliegue
- 15 — Dominio personalizado y SSL
- 16 — Workload Identity Federation
- 17 — GitHub Actions CI/CD
- 18 — Referencia Rápida