arrow_back

Como criar instâncias e bancos de dados do Spanner (CLI e Terraform)

Acesse mais de 700 laboratórios e cursos

Como criar instâncias e bancos de dados do Spanner (CLI e Terraform)

Laboratório 1 hora universal_currency_alt 1 crédito show_chart Introdutório
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Acesse mais de 700 laboratórios e cursos

SCBL002

Visão geral

Neste laboratório, você vai automatizar a criação de instâncias e bancos de dados do Spanner usando o SDK Google Cloud, a interface de linha de comando (CLI) e o Terraform.

Objetivos

Neste laboratório, você vai aprender a:

  • criar instâncias e bancos de dados usando a gcloud CLI;
  • automatizar a infraestrutura do Spanner usando o Terraform.

Configuração e requisitos

Antes de clicar no botão Começar o Laboratório

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.

Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.

Confira os requisitos para concluir o laboratório:

  • Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.
  • Tempo para concluir o laboratório: não se esqueça, depois de começar, não será possível pausar o laboratório.
Observação: não use seu projeto ou conta pessoal do Google Cloud neste laboratório para evitar cobranças extras.

Ative o Google Cloud Shell

O Google Cloud Shell é uma máquina virtual com ferramentas de desenvolvimento. Ele conta com um diretório principal permanente de 5 GB e é executado no Google Cloud. O Google Cloud Shell permite acesso de linha de comando aos seus recursos do GCP.

  1. No Console do GCP, na barra de ferramentas superior direita, clique no botão Abrir o Cloud Shell.

    Ícone do Cloud Shell

  2. Clique em Continue (continuar):

    cloudshell_continue

Demora alguns minutos para provisionar e conectar-se ao ambiente. Quando você está conectado, você já está autenticado e o projeto é definido como seu PROJECT_ID . Por exemplo:

Terminal do Cloud Shell

gcloud é a ferramenta de linha de comando do Google Cloud Platform. Ele vem pré-instalado no Cloud Shell e aceita preenchimento com tabulação.

É possível listar o nome da conta ativa com este comando:

gcloud auth list

Saída:

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

É possível listar o ID de projeto com este comando:

gcloud config list project
	

Saída:

[core]
project = <project_ID>
	

Exemplo de saída:

[core]
project = qwiklabs-gcp-44776a13dea667a6
	

Tarefa 1: criar instâncias e bancos de dados usando a gcloud CLI

  1. Na barra de título do console do Google Cloud, clique em Ativar o Cloud Shell (Ícone do Cloud Shell). Caso solicitado, clique em Continuar.

  2. Execute o seguinte comando para definir o ID do projeto:

gcloud config set project {{{project_0.project_id|placeholder_project_id}}}
  1. No prompt do Cloud Shell, execute o comando a seguir para criar uma instância do Spanner chamada test-spanner-instance.

Observe os parâmetros de configuração e capacidade do Spanner. Se precisar autorizar o comando, faça isso.

gcloud spanner instances create test-spanner-instance --config=regional-{{{project_0.default_region|place_holder_text}}} --description="test-spanner-instance" --processing-units=100
  1. O comando não deve demorar. No console, acesse o serviço Spanner e verifique se a instância foi criada.

Para acessar a instância, execute o comando abaixo. Experimente isso agora.

gcloud spanner instances list
  1. Antes de criar o banco de dados "Animais de estimação", você precisa de um arquivo que contenha o código DDL. Digite o comando a seguir para criar o arquivo e abri-lo no editor de código nano.
nano pets-db-schema.sql
  1. Cole o código a seguir no Nano. Digite Ctrl+X, depois Y e pressione a tecla ENTER para salvar o arquivo.
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. Agora que você tem o arquivo de esquema, execute o comando a seguir para criar o banco de dados.
gcloud spanner databases create pets-db --instance=test-spanner-instance --database-dialect=GOOGLE_STANDARD_SQL --ddl-file=./pets-db-schema.sql
  1. Insira um proprietário e todos os cães dele. As chaves primárias de "Proprietários" e "Animais de estimação" usam UUIDs. Digite o comando a seguir para criar um UUID para o proprietário e armazená-lo em uma variável.
owner_uuid=$(cat /proc/sys/kernel/random/uuid) echo $owner_uuid
  1. Insira o proprietário Doug.
    Observação: o parâmetro --data permite passar os campos em pares de nome e valor.
gcloud spanner rows insert --table=Owners --database=pets-db --instance=test-spanner-instance --data=OwnerID=$owner_uuid,OwnerName=Doug
  1. Insira todos os cães de Doug com os seguintes 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. Vamos conferir se funcionou. Execute a consulta a seguir.
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. Também é possível acessar o console e visualizar os dados. Escolha Spanner na lista de produtos. Depois, selecione test-spanner-instance > pets-db (em "Bancos de dados") > Animais de estimação (em "Tabelas") > Dados no menu à esquerda.

  2. Exclua o banco de dados com o comando a seguir.

gcloud spanner databases delete pets-db --instance=test-spanner-instance
  1. No console, verifique se o banco de dados foi excluído.

  2. Por fim, exclua a instância com o seguinte comando.

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

Observação: o parâmetro --quiet executa o comando sem solicitar confirmação ao usuário. Ele também poderia ter sido adicionado ao comando anterior. Isso é útil se você estiver escrevendo um pipeline automatizado e não houver um usuário para perguntar.

  1. No console, verifique se a instância foi excluída.

Tarefa 2: automatizar a infraestrutura do Spanner usando o Terraform

  1. Crie uma pasta para seus arquivos do Terraform e mude para ela usando os comandos a seguir.
mkdir terraform-spanner cd terraform-spanner
  1. Você precisa de alguns arquivos para o módulo do Terraform. Execute o comando a seguir para criar os arquivos vazios.
touch main.tf provider.tf terraform.tfvars variables.tf
  1. Clique no botão Abrir editor para abrir o editor de código. No painel "Explorer" à esquerda, encontre e abra a pasta terraform-spanner que você acabou de criar. Selecione o arquivo provider.tf para abri-lo no editor e adicione o código a seguir.
terraform { required_providers { google = { source = "hashicorp/google" version = "~> 4.0" } } } provider "google" { project = var.project_id region = var.region }

Observação: o código no bloco do Terraform faz o download do provedor do Google no site da Hashicorp. O código no bloco do provedor configura o provedor para usar o ID do projeto e a região corretos, que você vai definir como variáveis mais tarde.

  1. Abra o arquivo main.tf e adicione o seguinte bloco de recursos. Esse código cria a instância do 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. No mesmo arquivo, abaixo do código anterior, adicione o código a seguir, que cria o banco de dados "Animais de estimação". Observe o código DDL que define as tabelas.
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. Abra o arquivo variables.tf. Nesse arquivo, você declara as variáveis usadas no módulo do Terraform. Adicione este 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 as variáveis, exceto project_id e region, têm padrões. Use o arquivo terraform.tfvars para definir os valores das variáveis. Abra o arquivo e adicione o seguinte código:
project_id = "{{{project_0.project_id|placeholder_project_id}}}" region = "{{{project_0.default_region|place_holder_text}}}"
  1. Vamos ver se funciona. Clique no botão Abrir terminal. É possível que você precise voltar para a guia original se o editor abrir uma nova guia ou janela. No prompt de comando, digite:
terraform init
  1. Supondo que não tenha havido erros com o comando anterior, digite o seguinte e analise a saída. Ele deve informar que dois recursos serão adicionados.
terraform plan
  1. Por fim, digite o comando a seguir para criar a instância do Spanner e o banco de dados "Animais de estimação". Digite yes quando solicitado.
terraform apply
  1. Espere o comando do Terraform terminar. No console, acesse o serviço Spanner e verifique se a instância e o banco de dados foram criados. Não há um botão de atualização, então talvez seja necessário clicar em outro produto e depois voltar ao Spanner para atualizar a lista de instâncias.

  2. Volte ao terminal e digite o comando a seguir para excluir a instância do Spanner.

terraform destroy -auto-approve

Parabéns! Você automatizou a criação de instâncias e bancos de dados do Spanner usando o SDK Google Cloud, a interface de linha de comando (CLI) e o Terraform.

Terminar o laboratório

Após terminar seu laboratório, clique em End Lab. O Qwiklabs removerá os recursos usados e limpará a conta para você.

Você poderá classificar sua experiência neste laboratório. Basta selecionar o número de estrelas, digitar um comentário e clicar em Submit.

O número de estrelas indica o seguinte:

  • 1 estrela = muito insatisfeito
  • 2 estrelas = insatisfeito
  • 3 estrelas = neutro
  • 4 estrelas = satisfeito
  • 5 estrelas = muito satisfeito

Feche a caixa de diálogo se não quiser enviar feedback.

Para enviar seu feedback, fazer sugestões ou correções, use a guia Support.

Copyright 2024 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de empresas e produtos podem ser marcas registradas das empresas a que estão associados.

Antes de começar

  1. Os laboratórios criam um projeto e recursos do Google Cloud por um período fixo
  2. Os laboratórios têm um limite de tempo e não têm o recurso de pausa. Se você encerrar o laboratório, vai precisar recomeçar do início.
  3. No canto superior esquerdo da tela, clique em Começar o laboratório

Usar a navegação anônima

  1. Copie o nome de usuário e a senha fornecidos para o laboratório
  2. Clique em Abrir console no modo anônimo

Fazer login no console

  1. Faça login usando suas credenciais do laboratório. Usar outras credenciais pode causar erros ou gerar cobranças.
  2. Aceite os termos e pule a página de recursos de recuperação
  3. Não clique em Terminar o laboratório a menos que você tenha concluído ou queira recomeçar, porque isso vai apagar seu trabalho e remover o projeto

Este conteúdo não está disponível no momento

Você vai receber uma notificação por e-mail quando ele estiver disponível

Ótimo!

Vamos entrar em contato por e-mail se ele ficar disponível

Um laboratório por vez

Confirme para encerrar todos os laboratórios atuais e iniciar este

Use a navegação anônima para executar o laboratório

Para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.