Instruções e requisitos de configuração do laboratório
Proteja sua conta e seu progresso. Sempre use uma janela anônima do navegador e suas credenciais para realizar este laboratório.

Conectar um app a uma instância do Cloud SQL para PostgreSQL

Laboratório 35 minutos universal_currency_alt 1 crédito show_chart Introdutório
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Este conteúdo ainda não foi otimizado para dispositivos móveis.
Para aproveitar a melhor experiência, acesse nosso site em um computador desktop usando o link enviado a você por e-mail.

GSP919

Logotipo dos laboratórios autoguiados do Google Cloud

Visão geral

O Cloud SQL é um serviço de banco de dados relacional totalmente gerenciado para MySQL, PostgreSQL e Microsoft SQL Server que oferece muitos serviços para tarefas administrativas comuns, como backups, replicação e geração de registros. É fácil conectar seus aplicativos a uma instância do Cloud SQL para aproveitar esses serviços úteis.

Neste laboratório, você vai criar um cluster do Kubernetes e implantar um aplicativo simples nele. Em seguida, conecte o aplicativo a uma instância fornecida do Cloud SQL para PostgreSQL e confirme se ele pode gravar e ler dados dela.

Atividades deste laboratório

  • Crie um cluster do Kubernetes e implante um aplicativo simples nele.
  • Conecte o aplicativo à instância de banco de dados do Cloud SQL para PostgreSQL fornecida.
  • Confirme se o aplicativo pode gravar e ler no banco de dados.

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 é ativado quando você clica em Iniciar 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, e 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 (recomendado) ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e de estudante, o que poderia causar cobranças extras na sua conta pessoal.
  • Tempo para concluir o laboratório: não se esqueça que, depois de começar, não será possível pausar o laboratório.
Observação: use apenas a conta de estudante neste laboratório. Se usar outra conta do Google Cloud, você poderá receber cobranças nela.

Como iniciar seu laboratório e fazer login no console do Google Cloud

  1. Clique no botão Começar o laboratório. Se for preciso pagar por ele, uma caixa de diálogo vai aparecer para você selecionar a forma de pagamento. No painel Detalhes do Laboratório, à esquerda, você vai encontrar o seguinte:

    • O botão Abrir Console do Google Cloud
    • O tempo restante
    • As credenciais temporárias que você vai usar neste laboratório
    • Outras informações, se forem necessárias
  2. Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.

    O laboratório ativa os recursos e depois abre a página Fazer Login em outra guia.

    Dica: coloque as guias em janelas separadas lado a lado.

    Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
  3. Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.

    {{{user_0.username | "Username"}}}

    Você também encontra o nome de usuário no painel Detalhes do Laboratório.

  4. Clique em Próxima.

  5. Copie a Senha abaixo e cole na caixa de diálogo de Olá.

    {{{user_0.password | "Password"}}}

    Você também encontra a senha no painel Detalhes do Laboratório.

  6. Clique em Próxima.

    Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
  7. Acesse as próximas páginas:

    • Aceite os Termos e Condições.
    • Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
    • Não se inscreva em testes gratuitos.

Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.

Observação: para acessar os produtos e serviços do Google Cloud, clique no Menu de navegação ou digite o nome do serviço ou produto no campo Pesquisar. Ícone do menu de navegação e campo de pesquisa

Ativar o Cloud Shell

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

  1. Clique em Ativar o Cloud Shell Ícone "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.

  2. Clique nas seguintes janelas:

    • Continue na janela de informações do Cloud Shell.
    • Autorize o Cloud Shell a usar suas credenciais para fazer chamadas de APIs do Google Cloud.

Depois de se conectar, você verá que sua conta já está autenticada e que o projeto está configurado com seu Project_ID, . A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

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

  1. (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
  1. Clique em Autorizar.

Saída:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Opcional) É possível listar o ID do projeto usando este comando:
gcloud config list project

Saída:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Observação: consulte a documentação completa da gcloud no Google Cloud no guia de visão geral da gcloud CLI.

Configure sua região e zona

Alguns recursos do Compute Engine estão em regiões e zonas. As regiões são localizações geográficas específicas onde você executa seus recursos. Todas elas têm uma ou mais zonas.

Execute estes comandos da gcloud no Cloud Shell para definir a região e a zona padrão do laboratório:

gcloud config set compute/zone "{{{project_0.default_zone|ZONE}}}" export ZONE=$(gcloud config get compute/zone) gcloud config set compute/region "{{{project_0.default_region|REGION}}}" export REGION=$(gcloud config get compute/region)

Tarefa 1: inicializar APIs e criar uma conta de serviço do Cloud IAM

Para concluir esta tarefa, é necessário inicializar as APIs e criar uma conta de serviço do IAM que será usada para permitir que seu aplicativo se conecte ao banco de dados do Cloud SQL.

Ativar as APIs

É preciso ativar as APIs necessárias para este laboratório. Você vai criar e enviar um contêiner para o Artifact Registry em uma tarefa posterior, então precisa ativar a API Artifact Registry primeiro.

  1. No Cloud Shell, execute o seguinte comando para ativar a API Artifact Registry:
gcloud services enable artifactregistry.googleapis.com

Criar uma conta de serviço para o Cloud SQL

É necessário configurar as credenciais da conta de serviço do IAM para o aplicativo que será implantado mais tarde. A conta de serviço precisa estar vinculada a um papel que permita criar e acessar bancos de dados do Cloud SQL.

  1. No Cloud Shell, crie uma conta de serviço e vincule-a ao papel de administrador do Cloud SQL no projeto do laboratório:
export PROJECT_ID=$(gcloud config list --format 'value(core.project)') export CLOUDSQL_SERVICE_ACCOUNT=cloudsql-service-account gcloud iam service-accounts create $CLOUDSQL_SERVICE_ACCOUNT --project=$PROJECT_ID gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:$CLOUDSQL_SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/cloudsql.admin"
  1. No Cloud Shell, crie e exporte chaves para um arquivo local:
gcloud iam service-accounts keys create $CLOUDSQL_SERVICE_ACCOUNT.json \ --iam-account=$CLOUDSQL_SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com \ --project=$PROJECT_ID

O arquivo será salvo na pasta inicial do Cloud Shell.

Clique em Verificar meu progresso para conferir o objetivo. Crie uma conta de serviço do IAM para o Cloud SQL.

Tarefa 2: implantar um aplicativo leve do GKE

Nesta tarefa, você vai criar um cluster do Kubernetes e implantar um aplicativo leve do Google Kubernetes Engine (GKE) nele. Você vai configurar o aplicativo para ter acesso à instância do Cloud SQL fornecida.

O aplicativo fornecido é um aplicativo da Web simples do Flask-SQLAlchemy chamado gMemegen. Ele cria memes ao fornecer um conjunto de fotografias e capturar texto de cabeçalho e rodapé, armazenando-os no banco de dados e renderizando o meme em uma pasta local. Ele é executado em um único pod com dois contêineres: um para o aplicativo e outro para o proxy de autenticação do Cloud SQL implantado no padrão de arquivo secundário.

Um balanceador de carga vai organizar as solicitações entre o app e o banco de dados pelo sidecar. Esse balanceador de carga vai expor um endereço IP externo do Ingress, que você vai usar para acessar o app no navegador.

Criar um cluster do Kubernetes

Nesta etapa, você vai criar um cluster mínimo do Kubernetes. A implantação do cluster leva alguns minutos.

  1. No Cloud Shell, crie um cluster mínimo do Kubernetes usando este código:
ZONE={{{project_0.default_zone|ZONE}}} gcloud container clusters create postgres-cluster \ --zone=$ZONE --num-nodes=2

Criar secrets do Kubernetes para acesso ao banco de dados

Nesta etapa, você vai criar um par de secrets do Kubernetes com as credenciais necessárias para se conectar à instância e ao banco de dados do Cloud SQL.

  1. No Cloud Shell, execute os seguintes comandos para criar os secrets:
kubectl create secret generic cloudsql-instance-credentials \ --from-file=credentials.json=$CLOUDSQL_SERVICE_ACCOUNT.json kubectl create secret generic cloudsql-db-credentials \ --from-literal=username=postgres \ --from-literal=password=supersecret! \ --from-literal=dbname=gmemegen_db

Baixar e criar o contêiner de aplicativos do GKE

Antes de implantar o aplicativo gMemegen no cluster do GKE, crie o contêiner e envie-o para um repositório.

  1. No Cloud Shell, baixe o código do aplicativo fornecido e mude para o diretório do aplicativo:
gsutil -m cp -r gs://spls/gsp919/gmemegen . cd gmemegen
  1. Crie variáveis de ambiente para a região, a ID do projeto e o repositório do Artifact Registry:
export REGION={{{ project_0.default_region | "REGION" }}} export PROJECT_ID=$(gcloud config list --format 'value(core.project)') export REPO=gmemegen
  1. Configure a autenticação do Docker para o Artifact Registry:
gcloud auth configure-docker ${REGION}-docker.pkg.dev
  • Digite Y se for solicitada uma confirmação.
  1. Criar o repositório do Artifact Registry:
gcloud artifacts repositories create $REPO \ --repository-format=docker --location=$REGION
  1. Crie uma imagem Docker local:
docker build -t ${REGION}-docker.pkg.dev/${PROJECT_ID}/gmemegen/gmemegen-app:v1 .

Para este laboratório, ignore o aviso sobre a execução de "pip" como usuário "root". No entanto, ao trabalhar na sua máquina local, geralmente é recomendável usar um ambiente virtual.

  1. Enviar a imagem para o Artifact Registry:
docker push ${REGION}-docker.pkg.dev/${PROJECT_ID}/gmemegen/gmemegen-app:v1

Configurar e implantar o aplicativo do GKE

É necessário modificar o manifesto de implantação do Kubernetes para o aplicativo gMemegen de modo que ele aponte para o contêiner correto e configure o sidecar do proxy de autenticação do Cloud SQL com a string de conexão da instância do Cloud SQL PostgreSQL.

As instruções explicam como editar o arquivo usando o editor do Cloud Shell. No entanto, se preferir, você pode usar outro editor, como vi ou nano, no Cloud Shell para essas etapas.

  1. Na barra de menus do Cloud Shell, clique em Abrir editor para abrir o editor do Cloud Shell.

  2. Navegue pelo painel Explorer à esquerda, expanda a pasta gmemegen e selecione gmemegen_deployment.yaml para editar o arquivo.

  3. Na linha 33, no atributo image, substitua ${REGION} por e ${PROJECT_ID} por . A linha vai ficar assim:

image: {{{ project_0.default_region | "REGION" }}}-docker.pkg.dev/{{{ project_0.project_id | "Project ID" }}}/gmemegen/gmemegen-app:v1
  1. Na linha 60, substitua ${REGION} por e ${PROJECT_ID} por . A linha vai ficar assim:
-instances={{{ project_0.project_id | "Project ID" }}}:{{{ project_0.default_region | "REGION" }}}:postgres-gmemegen=tcp:5432

Para confirmar se o nome da conexão está correto, no console do Cloud, acesse Bancos de dados > SQL, selecione a instância postgres-gmemegen e compare com o Nome da conexão no painel Visão geral. Um nome de conexão válido está no formato PROJECT_ID:REGION:CLOUD_SQL_INSTANCE_ID.

  1. Para salvar as mudanças, selecione Arquivo > Salvar no menu do editor do Cloud Shell.

  2. No console do Cloud, clique em Abrir terminal para reabrir o Cloud Shell. Talvez seja necessário redimensionar a janela do terminal ao arrastar a alça na parte de cima central da barra de menus para ver a janela do console do Cloud acima.

  3. No Cloud Shell, implante o aplicativo ao executar o seguinte comando:

kubectl create -f gmemegen_deployment.yaml
  1. No Cloud Shell, verifique se a implantação foi concluída com o seguinte comando:
kubectl get pods

Pode levar um minuto para que os pods sejam iniciados, porque eles precisam extrair a imagem do repositório. Repita o comando acima até encontrar um pod com dois contêineres e status Em execução.

Clique em Verificar meu progresso para conferir o objetivo. Implante um aplicativo leve do GKE.

Tarefa 3: conectar o aplicativo do GKE a um balanceador de carga externo

Nesta tarefa, você vai criar um balanceador de carga para organizar solicitações entre os contêineres nos pods do GKE e acessar o aplicativo usando o endereço IP externo dele no navegador.

Criar um balanceador de carga para tornar seu aplicativo do GKE acessível na Web

Nesta etapa, você vai criar um serviço de balanceador de carga do Kubernetes que vai fornecer ao aplicativo um endereço IP público.

  1. No Cloud Shell, execute o seguinte comando para criar um balanceador de carga para o aplicativo:
kubectl expose deployment gmemegen \ --type "LoadBalancer" \ --port 80 --target-port 8080

Testar o aplicativo para gerar alguns dados

Nesta etapa, você vai acessar o aplicativo gMemegen no navegador da Web.

O aplicativo tem uma interface muito simples. Ele abre a página inicial do aplicativo, que mostra seis imagens candidatas para criar memes. Clique em uma imagem para selecioná-la.

A página Criar meme é exibida. Nela, você insere dois itens de texto, que serão mostrados na parte de cima e de baixo da imagem. Ao clicar em Enviar, o meme é renderizado e exibido. A interface não oferece navegação na página do meme concluído. Use o botão "Voltar" do navegador para retornar à página inicial.

Há outras duas páginas, Recentes e Aleatório, que mostram, respectivamente, um conjunto de memes mais recentes e um meme aleatório. Ao gerar memes e navegar pela interface, você cria a atividade no banco de dados, que pode ser consultada nos registros, conforme descrito abaixo.

Aguarde até que o balanceador de carga exponha um IP externo, que pode ser recuperado da seguinte maneira:

  1. No Cloud Shell, copie o atributo de endereço IP externo de LoadBalancer Ingress da saída de:
kubectl describe service gmemegen

Saída:

Name: gmemegen Namespace: default Labels: app=gmemegen Annotations: Selector: app=gmemegen Type: LoadBalancer IP Families: IP: 10.3.240.201 IPs: 10.3.240.201 LoadBalancer Ingress: 34.67.122.203 Port: 80/TCP TargetPort: 8080/TCP NodePort: 31837/TCP Endpoints: 10.0.0.7:8080 Session Affinity: None External Traffic Policy: Cluster Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal EnsuringLoadBalancer 85s service-controller Ensuring load balancer Normal EnsuredLoadBalancer 36s service-controller Ensured load balancer

Levará um minuto para que o atributo LoadBalancer Ingress seja incluído na saída (veja acima). Repita o comando até que ele apareça antes de realizar a próxima etapa.

  1. Em um navegador, acesse o endereço IP de entrada do balanceador de carga.

É possível criar um link clicável para o endereço IP externo do balanceador de carga no Cloud Shell usando os seguintes comandos:

export LOAD_BALANCER_IP=$(kubectl get svc gmemegen \ -o=jsonpath='{.status.loadBalancer.ingress[0].ip}' -n default) echo gMemegen Load Balancer Ingress IP: http://$LOAD_BALANCER_IP
  1. Clique no link no Cloud Shell e o aplicativo gMemegen será executado em uma nova guia do navegador.

  2. Crie um meme da seguinte maneira:

    • Na página Início, clique em uma das imagens apresentadas.
    • Insira texto nas caixas Acima e Abaixo.
    • Clique no botão Enviar.

Seu novo meme vai aparecer.

Meme para app GKE conectado ao Cloud SQL.

  1. Para criar mais memes, use o botão "Voltar" do navegador para acessar a página inicial.

  2. Para ver os memes criados, clique em Recentes ou Aleatório no menu do aplicativo. (Observe que Aleatório abre uma nova guia do navegador)

  3. No Cloud Shell, confira a atividade do aplicativo ao executar o seguinte:

POD_NAME=$(kubectl get pods --output=json | jq -r ".items[0].metadata.name") kubectl logs $POD_NAME gmemegen | grep "INFO"

Isso consulta os registros do contêiner gmemegen e mostra a atividade do aplicativo no pod, incluindo as instruções SQL, que são registradas em stderr à medida que são executadas.

Clique em Verificar meu progresso para conferir o objetivo. Conecte o aplicativo do GKE a um balanceador de carga externo.

Tarefa 4: verificar as capacidades completas de leitura/gravação do aplicativo no banco de dados

Nesta tarefa, você vai verificar se o aplicativo consegue gravar e ler dados do banco de dados.

Conectar-se ao banco de dados e consultar uma tabela de aplicativos

Nesta etapa, você vai se conectar à instância do Cloud SQL executando PL/SQL no Cloud Shell.

  1. No console do Google Cloud, acesse Bancos de dados > SQL e selecione a instância postgres-gmemegen.

  2. No painel Visão geral, role para baixo até Conectar-se a esta instância e clique no botão Abrir o Cloud Shell.

  3. Execute o comando preenchido automaticamente no Cloud Shell.

  4. Quando solicitado, insira a senha: supersecret!.

  5. No prompt postgres=>, digite o seguinte comando para selecionar o banco de dados gmemegen_db:

\c gmemegen_db
  1. Quando solicitado, insira a senha: supersecret!.

  2. No comando gmemegen_db=>, insira:

select * from meme;

Isso vai mostrar uma linha para cada meme gerado pelo app gMemegen.

Clique em Verificar meu progresso para conferir o objetivo. Verifique as capacidades completas de leitura/gravação do aplicativo no banco de dados.

Parabéns!

Neste laboratório, você configurou um aplicativo para acessar um banco de dados do Cloud SQL para PostgreSQL. Você criou um cluster do Kubernetes e implantou um aplicativo simples de geração de memes nele. Além disso, conectou o aplicativo à instância de banco de dados do Cloud SQL para PostgreSQL fornecida e confirmou que ele grava e lê os dados dela.

Treinamento e certificação do Google Cloud

Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.

Manual atualizado em 28 de fevereiro de 2025

Laboratório testado em 28 de fevereiro de 2025

Copyright 2026 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas 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

A melhor maneira de executar este laboratório é usando uma janela de navegação anônima ou privada. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.