Aprovisiona recursos de Cloud Storage con Terraform

HashiCorp Terraform es una herramienta de infraestructura como código (IaC) que te permite aprovisionar y administrar la infraestructura de nube. Terraform proporciona complementos llamados proveedores que te permiten interactuar con proveedores de servicios en la nube y otras APIs. Puedes usar el proveedor de Terraform para Google Cloud para aprovisionar y administrar recursos de Google Cloud , incluido Cloud Storage.

En esta página, se presenta el uso de Terraform con Cloud Storage, incluida una introducción a cómo funciona Terraform y algunos recursos para ayudarte a comenzar a usar Terraform con Google Cloud. También encontrarás vínculos a documentos de referencia de Terraform para Cloud Storage, ejemplos de código y guías para usar Terraform para aprovisionar recursos de Cloud Storage.

Para obtener instrucciones sobre cómo comenzar a usar Terraform para Google Cloud, consulta Instala y configura Terraform o la guía de inicio rápido de Terraform para Google Cloud .

Cómo funciona Terraform

Terraform tiene una sintaxis declarativa y orientada a la configuración que puedes usar para describir la infraestructura que deseas aprovisionar en tu proyecto de Google Cloud . Después de crear esta configuración en uno o más archivos de configuración de Terraform, puedes usar la CLI de Terraform para aplicarla a tus recursos de Cloud Storage.

En los siguientes pasos, se explica cómo funciona Terraform:

  1. Describe la infraestructura que deseas aprovisionar en un archivo de configuración de Terraform. No es necesario que escribas código que describa cómo aprovisionar la infraestructura. Terraform aprovisiona la infraestructura por ti.
  2. Ejecuta el comando terraform plan, que evalúa tu configuración y genera un plan de ejecución. Puedes revisar el plan y realizar cambios según sea necesario.
  3. Luego, ejecuta el comando terraform apply, que realiza las siguientes acciones:

    1. Aprovisiona tu infraestructura según tu plan de ejecución invocando las APIs de Cloud Storage correspondientes en segundo plano.
    2. Crea un archivo de estado de Terraform, que es un archivo JSON que asigna los recursos de tu archivo de configuración a los recursos de la infraestructura del mundo real. Terraform usa este archivo para mantener un registro del estado más reciente de tu infraestructura y determinar cuándo crear, actualizar y destruir recursos.
    3. Luego, cuando ejecutes terraform apply, Terraform usa la asignación en el archivo de estado para comparar la infraestructura existente con el código y realizar actualizaciones según sea necesario:

      • Si se define un objeto de recurso en el archivo de configuración, pero no existe en el archivo de estado, Terraform lo crea.
      • Si existe un objeto de recurso en el archivo de estado, pero tiene una configuración diferente de tu archivo de configuración, Terraform actualiza el recurso para que coincida con tu archivo de configuración.
      • Si un objeto de recurso en el archivo de estado coincide con tu archivo de configuración, Terraform deja el recurso sin cambios.

Recursos de Terraform para Cloud Storage

Los recursos son los elementos fundamentales del lenguaje de Terraform. Cada bloque de recursos describe uno o más objetos de infraestructura, como redes virtuales o instancias de procesamiento.

En la siguiente tabla, se enumeran los recursos de Terraform disponibles para Cloud Storage:

Servicio Recursos de Terraform Fuentes de datos

Cloud Storage

Servicio de Terraform: Cloud Storage

Storage Intelligence

Servicio de Terraform: Cloud Storage Control

Función de operaciones de almacenamiento por lotes de Storage Intelligence

Servicio de Terraform: Cloud Storage Batch Operations

-

Función Storage Insights de Storage Intelligence

Servicio de Terraform: Cloud Storage Insights

Guías basadas en Terraform para Cloud Storage

En la siguiente tabla, se enumeran las guías prácticas y los instructivos basados en Terraform para Cloud Storage:

Guía Detalles
Guía de inicio rápido: Usa Terraform para crear un bucket y subir un objeto En esta guía de inicio rápido, se muestra cómo comenzar a usar Terraform creando un archivo de configuración de Terraform que aprovisione un bucket de almacenamiento y suba un objeto de muestra al bucket.
Cree un depósito En esta guía, se explica cómo crear un bucket.
Obtén metadatos de buckets En esta guía, se explica cómo ver los metadatos de un bucket.
Sube objetos En esta guía, se explica cómo subir objetos a un bucket desde tu sistema de archivos local.
Obtén metadatos de objetos En esta guía, se explica cómo ver los metadatos de un objeto.
Administra los ciclos de vida de los objetos En esta guía, se explica cómo establecer la configuración del ciclo de vida de un bucket.
Configura notificaciones de Pub/Sub En esta guía, se explica cómo configurar tu bucket para enviar notificaciones sobre cambios de objetos a un tema de Pub/Sub.
Crea claves HMAC En esta guía, se explica cómo crear claves de código de autenticación de mensajes basado en hash (HMAC) para cuentas de servicio en tu proyecto.
Haz públicos los datos En esta guía, se explica cómo hacer que todos los objetos de un bucket sean legibles para todos en la Internet pública.
Aloja un sitio web estático En esta guía, se explica cómo configurar un bucket para alojar un sitio web estático para un dominio que te pertenezca.

Módulos y planos de Terraform para Cloud Storage

Los módulos y los esquemas te ayudan a automatizar el aprovisionamiento y la administración de los recursos de Google Cloud a gran escala. Un módulo es un conjunto reutilizable de archivos de configuración de Terraform que crea una abstracción lógica de los recursos de Terraform. Un plano es un paquete de módulos implementables y reutilizables, y una política que implementa y documenta una solución específica.

En la siguiente tabla, se enumeran los módulos y los planos relacionados con Cloud Storage:

Módulo o esquema Detalles
terraform-google-cloud-storage Este módulo crea uno o más buckets de Cloud Storage y les asigna permisos básicos a usuarios arbitrarios.

¿Qué sigue?