arrow_back

Creación de instancias y bases de datos de Spanner (CLI y Terraform)

Acceder Unirse
Obtén acceso a más de 700 labs y cursos

Creación de instancias y bases de datos de Spanner (CLI y Terraform)

Lab 1 hora universal_currency_alt 1 crédito show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Obtén acceso a más de 700 labs y cursos

SCBL002

Descripción general

En este lab, automatizarás la creación de instancias y bases de datos de Spanner con el SDK de Google Cloud, la interfaz de línea de comandos (CLI) y Terraform.

Objetivos

En este lab, aprenderás a realizar las siguientes tareas:

  • Crear instancias y bases de datos con gcloud CLI
  • Automatizar la infraestructura de Spanner con Terraform

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

En este lab práctico, se te proporcionarán credenciales temporales nuevas para acceder a Google Cloud y realizar las actividades en un entorno de nube real, no en uno de simulación o demostración.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
Nota: Usa una ventana de navegador privada o de incógnito para ejecutar el lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab (recuerda que, una vez que comienzas un lab, no puedes pausarlo)
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Active Google Cloud Shell

Google Cloud Shell es una máquina virtual que cuenta con herramientas de desarrollo. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Google Cloud Shell proporciona acceso de línea de comandos a sus recursos de GCP.

  1. En GCP Console, en la barra de herramientas superior derecha, haga clic en el botón Abrir Cloud Shell.

    Ícono de Cloud Shell

  2. Haga clic en Continue (Continuar):

    cloudshell_continue

Toma unos minutos aprovisionar y conectarse con el entorno. Cuando está conectado, ya está autenticado y el proyecto está configurado en su PROJECT_ID . Por ejemplo:

Terminal de Cloud Shell

gcloud es la herramienta de línea de comandos para Google Cloud Platform. Viene preinstalada en Cloud Shell y es compatible con la función “tab-completion”.

Puede mostrar el nombre de la cuenta activa con este comando:

gcloud auth list

Resultado:

ACTIVE: *
ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net
To set the active account, run:
    $ gcloud config set account `ACCOUNT`
	

Puede mostrar el ID del proyecto con este comando:

gcloud config list project
	

Resultado:

[core]
project = <project_ID>
	

Resultado de ejemplo:

[core]
project = qwiklabs-gcp-44776a13dea667a6
	

Tarea 1. Crea instancias y bases de datos con gcloud CLI

  1. En la barra de título de la consola de Google Cloud, haz clic en Activar Cloud Shell (ícono de Cloud Shell). Si se te solicita, haz clic en Continuar.

  2. Ejecuta el siguiente comando para configurar el ID del proyecto:

gcloud config set project {{{project_0.project_id|placeholder_project_id}}}
  1. Desde la ventana de Cloud Shell, ejecuta el siguiente comando para crear una instancia de Spanner llamada test-spanner-instance.

Ten en cuenta los parámetros de configuración y la capacidad de Spanner. Si se te solicita autorizar el comando, hazlo.

gcloud spanner instances create test-spanner-instance --config=regional-{{{project_0.default_region|place_holder_text}}} --description="test-spanner-instance" --processing-units=100
  1. El comando no debería tardar mucho tiempo. En la consola, navega hasta el servicio de Spanner y verifica que se haya creado la instancia.

Para ver la instancia, también puedes ejecutar el siguiente comando. Pruébalo ahora.

gcloud spanner instances list
  1. Antes de crear la base de datos de mascotas, necesitas un archivo que contenga el código DDL. Escribe el siguiente comando para crear el archivo y abrirlo en el editor de código nano.
nano pets-db-schema.sql
  1. Pega el siguiente código en Nano. Escribe Ctrl+X y luego Y. Por último, presiona la tecla INTRO para guardar el archivo.
CREATE TABLE Owners ( OwnerID STRING(36) NOT NULL, OwnerName STRING(MAX) NOT NULL ) PRIMARY KEY (OwnerID); CREATE TABLE Pets ( PetID STRING(36) NOT NULL, OwnerID STRING(36) NOT NULL, PetType STRING(MAX) NOT NULL, PetName STRING(MAX) NOT NULL, Breed STRING(MAX) NOT NULL, ) PRIMARY KEY (PetID);
  1. Ahora que tienes el archivo de esquema, ejecuta el siguiente comando para crear la base de datos.
gcloud spanner databases create pets-db --instance=test-spanner-instance --database-dialect=GOOGLE_STANDARD_SQL --ddl-file=./pets-db-schema.sql
  1. Inserta un propietario y todos los perros que posee. Las claves primarias de Propietarios y Mascotas usan UUID. Ingresa el siguiente comando con el objetivo de crear un UUID para el propietario y almacenarlo en una variable.
owner_uuid=$(cat /proc/sys/kernel/random/uuid) echo $owner_uuid
  1. Inserta el propietario Doug.
    Nota: El parámetro --data te permite pasar los campos en pares de nombre y valor.
gcloud spanner rows insert --table=Owners --database=pets-db --instance=test-spanner-instance --data=OwnerID=$owner_uuid,OwnerName=Doug
  1. Inserta todos los perros de Doug con los siguientes comandos.
gcloud spanner rows insert --table=Pets --database=pets-db --instance=test-spanner-instance --data=PetID=$(cat /proc/sys/kernel/random/uuid),OwnerID=$owner_uuid,PetName='Rusty',PetType='Dog',Breed='Poodle' gcloud spanner rows insert --table=Pets --database=pets-db --instance=test-spanner-instance --data=PetID=$(cat /proc/sys/kernel/random/uuid),OwnerID=$owner_uuid,PetName='Duchess',PetType='Dog',Breed='Terrier' gcloud spanner rows insert --table=Pets --database=pets-db --instance=test-spanner-instance --data=PetID=$(cat /proc/sys/kernel/random/uuid),OwnerID=$owner_uuid,PetName='Gretyl',PetType='Dog',Breed='Shepherd' gcloud spanner rows insert --table=Pets --database=pets-db --instance=test-spanner-instance --data=PetID=$(cat /proc/sys/kernel/random/uuid),OwnerID=$owner_uuid,PetName='Gigi',PetType='Dog',Breed='Retriever' gcloud spanner rows insert --table=Pets --database=pets-db --instance=test-spanner-instance --data=PetID=$(cat /proc/sys/kernel/random/uuid),OwnerID=$owner_uuid,PetName='Noir',PetType='Dog',Breed='Schnoodle' gcloud spanner rows insert --table=Pets --database=pets-db --instance=test-spanner-instance --data=PetID=$(cat /proc/sys/kernel/random/uuid),OwnerID=$owner_uuid,PetName='Bree',PetType='Dog',Breed='Mutt'
  1. Veamos si funcionó. Ejecuta la siguiente consulta.
gcloud spanner databases execute-sql pets-db --instance=test-spanner-instance --sql='SELECT o.OwnerName, p.PetName, p.PetType, p.Breed FROM Owners as o JOIN Pets AS p ON o.OwnerID = p.OwnerID'
  1. También puedes ir a la consola y ver los datos. Elige Spanner en la lista de productos. Luego, selecciona test-spanner-instance > pets-db (en Databases) > Pets (en Tables) > Data en el menú de la izquierda.

  2. Borra la base de datos con el siguiente comando.

gcloud spanner databases delete pets-db --instance=test-spanner-instance
  1. En la consola, verifica que se haya borrado la base de datos.

  2. Por último, borra la instancia con el siguiente comando.

gcloud spanner instances delete test-spanner-instance --quiet

Nota: El parámetro --quiet ejecuta el comando sin solicitarle nada al usuario. Esto también se podría haber agregado al comando anterior. Esto es útil si estás escribiendo una canalización automatizada y no hay un usuario al que preguntarle.

  1. En la consola, verifica que se haya borrado la instancia.

Tarea 2. Automatiza la infraestructura de Spanner con Terraform

  1. Crea una carpeta para tus archivos de Terraform y úsala con los siguientes comandos.
mkdir terraform-spanner cd terraform-spanner
  1. Necesitas varios archivos para el módulo de Terraform. Ejecuta el siguiente comando para crear los archivos vacíos.
touch main.tf provider.tf terraform.tfvars variables.tf
  1. Haz clic en el botón Abrir editor para abrir el editor de código. En el panel Explorador de la izquierda, busca la carpeta terraform-spanner que acabas de crear y expándela. Selecciona el archivo provider.tf para abrirlo en el editor y agrégale el siguiente código.
terraform { required_providers { google = { source = "hashicorp/google" version = "~> 4.0" } } } provider "google" { project = var.project_id region = var.region }

Nota: El código en el bloque de Terraform descarga el proveedor de Google del sitio web de Hashicorp. El código en el bloque del proveedor establece que el proveedor use la región y el ID del proyecto correctos, que establecerás como variables más adelante.

  1. Abre el archivo main.tf y agrega el siguiente bloque de recursos. Este código crea la instancia de Spanner.
resource "google_spanner_instance" "db-instance" { name = "terraform-spanner-instance" config = "regional-${var.region}" display_name = "TF Spanner Instance" processing_units = var.processing_units force_destroy = var.force_destroy }
  1. En el mismo archivo, debajo del código anterior, agrega el siguiente código, que crea la base de datos de mascotas. Observa el código DDL que define las tablas.
resource "google_spanner_database" "test-database" { instance = google_spanner_instance.db-instance.name name = "pets-db" # Can't run destroy unless set to false deletion_protection = var.deletion_protection ddl = [ "CREATE TABLE Owners (OwnerID STRING(36) NOT NULL, OwnerName STRING(MAX) NOT NULL) PRIMARY KEY (OwnerID)", "CREATE TABLE Pets (PetID STRING(36) NOT NULL, OwnerID STRING(36) NOT NULL, PetType STRING(MAX) NOT NULL, PetName STRING(MAX) NOT NULL, Breed STRING(MAX) NOT NULL) PRIMARY KEY (PetID)", ] }
  1. Abre el archivo variables.tf. En este archivo, declaras las variables que se usan en el módulo de Terraform. Agrega el siguiente código.
variable "deletion_protection" { description = "If set to true, you cannot run terraform destroy if there are databases created." type = bool default = false } variable "force_destroy" { description = "If set to true, running terraform destroy will delete all backups." type = bool default = true } variable "processing_units" { type = number default = 100 } variable "project_id" { description = "The GCP Project ID." type = string } variable "region" { type = string }
  1. Todas las variables, excepto project_id y region, tienen una configuración predeterminada. Usa el archivo terraform.tfvars para establecer esos valores de variables. Abre ese archivo y agrega lo siguiente.
project_id = "{{{project_0.project_id|placeholder_project_id}}}" region = "{{{project_0.default_region|place_holder_text}}}"
  1. Veamos si funciona. Haz clic en el botón Abrir terminal. Ten en cuenta que es posible que debas volver a la pestaña original primero si el editor abrió una pestaña o ventana nuevas. En el símbolo del sistema, ingresa el siguiente comando.
terraform init
  1. Suponiendo que no hubo errores con el comando anterior, ingresa el siguiente y analiza el resultado. Debería decir que se agregarán dos recursos.
terraform plan
  1. Por último, ingresa el siguiente comando para crear la instancia de Spanner y la base de datos de mascotas. Debes escribir yes cuando se te solicite.
terraform apply
  1. Espera que se complete el comando de Terraform. En la consola, navega hasta el servicio de Spanner y verifica que se hayan creado la instancia y la base de datos. No hay un botón de actualización, por lo que es posible que debas hacer clic en otro producto y, luego, volver a Spanner para actualizar la lista de instancias.

  2. Regresa a la terminal y, luego, ingresa el siguiente comando para borrar la instancia de Spanner.

terraform destroy -auto-approve

¡Felicitaciones! Automatizaste la creación de instancias y bases de datos de Spanner con el SDK de Google Cloud, la interfaz de línea de comandos (CLI) y Terraform.

Finalice su lab

Cuando haya completado su lab, haga clic en End Lab. Qwiklabs quitará los recursos que usó y limpiará la cuenta por usted.

Tendrá la oportunidad de calificar su experiencia en el lab. Seleccione la cantidad de estrellas que corresponda, ingrese un comentario y haga clic en Submit.

La cantidad de estrellas indica lo siguiente:

  • 1 estrella = Muy insatisfecho
  • 2 estrellas = Insatisfecho
  • 3 estrellas = Neutral
  • 4 estrellas = Satisfecho
  • 5 estrellas = Muy satisfecho

Puede cerrar el cuadro de diálogo si no desea proporcionar comentarios.

Para enviar comentarios, sugerencias o correcciones, use la pestaña Support.

Copyright 2024 Google LLC. Todos los derechos reservados. Google y el logotipo de Google son marcas de Google LLC. El resto de los nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que están asociados.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usa una ventana de navegación privada o de Incógnito para ejecutar el lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.