GSP659
Visão geral
Administrar sites pode ser trabalhoso. É preciso criar e gerenciar VMs, clusters, pods, serviços etc. Esse processo faz sentido para aplicativos grandes e com vários níveis, mas não é necessário se você quiser apenas implantar um site e torná-lo visível.
Com o Cloud Run, a solução do Cloud desenvolvida no framework Knative do Google, é possível gerenciar e implantar um site sem o overhead de infraestrutura exigido pelas implantações puras do Kubernetes ou com VMs. Além de simplificar o gerenciamento, essa abordagem também permite a redução da escala a zero quando o site não está recebendo solicitações.
O Cloud Run leva o conceito de desenvolvimento sem servidor para os contêineres. Ele pode ser executado em clusters do Google Kubernetes Engine (GKE) ou em uma solução PaaS totalmente gerenciada oferecida pelo Cloud Run. Neste laboratório, você trabalhará com o segundo caso.
A ordem das tarefas simula uma experiência de desenvolvedor de nuvem:
- Criar um contêiner do Docker no seu aplicativo
- Implantar o contêiner no Cloud Run
- Modificar o site
- Lançar uma nova versão sem causar tempo de inatividade
O que você vai aprender
Neste laboratório, você vai aprender a:
- Criar uma imagem Docker usando o Cloud Build e fazer o upload dela no Artifact Registry
- Implantar imagens Docker no Cloud Run
- Gerenciar implantações do Cloud Run
- Configurar um endpoint para um aplicativo no Cloud Run
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
-
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
-
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.
-
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.
-
Clique em Próxima.
-
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.
-
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.
-
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.
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.
-
Clique em Ativar o Cloud Shell
na parte de cima do console do Google Cloud.
-
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.
- (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
- Clique em Autorizar.
Saída:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (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.
Tarefa 1: clonar o repositório de origem
Como você vai implantar um site que já existe, basta clonar a origem e depois criar as imagens Docker e fazer a implantação no Cloud Run.
- No Cloud Shell, execute os comandos a seguir para clonar o repositório git e acessar o diretório apropriado:
git clone https://github.com/googlecodelabs/monolith-to-microservices.git
cd ~/monolith-to-microservices
- Instale as dependências do NodeJS para testar o aplicativo antes da implantação:
./setup.sh
Esse processo vai levar alguns minutos. Você verá uma mensagem quando ele for concluído.
- Execute o comando a seguir para iniciar o servidor da web e testar o aplicativo:
cd ~/monolith-to-microservices/monolith
npm start
Saída:
Monolith listening on port 8080!
- Para ver o aplicativo, clique no ícone de visualização na web e selecione Visualizar na porta 8080.

Uma nova janela será aberta na página da web "Fancy Store".

- Depois de visualizar o site, feche a janela e pressione CTRL+C no Cloud Shell para interromper o servidor da web.
Tarefa 2: criar um contêiner do Docker com o Cloud Build
Agora que os arquivos de origem estão prontos, é hora de colocar o aplicativo no Docker.
O método mais comum seria criar um contêiner do Docker e enviá-lo para um registro, em que a imagem é armazenada e pode ser extraída pelo GKE. Com o Cloud Build, você pode criar o contêiner do Docker e mover a imagem para o Artifact Registry usando apenas um comando.
O Cloud Build compacta e envia os arquivos do diretório para um bucket do Cloud Storage. Em seguida, todos os arquivos do bucket e o Dockerfile no mesmo diretório serão usados para executar o processo de build no Docker.
Criar um repositório de destino do Docker
É necessário criar um repositório antes de enviar imagens para ele. O envio de uma imagem não aciona a criação de um repositório, e a conta de serviço do Cloud Build não tem permissões para criar repositórios.
-
No console, pesquise Artifact Registry no campo de pesquisa e clique no resultado Artifact Registry.
-
Clique em Criar repositório.
-
Especifique o nome do repositório como monolith-demo.
-
Escolha Docker como o formato.
-
Em Tipo de local, selecione Região e escolha o local .
-
Clique em Criar.
Configurar a autenticação
Antes de enviar ou extrair imagens, configure o Docker para usar a CLI do Google Cloud e autenticar solicitações ao Artifact Registry.
- Para configurar a autenticação nos repositórios do Docker na região , execute o seguinte comando no Cloud Shell:
gcloud auth configure-docker {{{project_0.default_region | Region}}}-docker.pkg.dev
O comando atualiza a configuração do Docker. Agora é possível se conectar ao Artifact Registry no projeto do Google Cloud para enviar e extrair imagens.
Implantar a imagem
Agora você vai implantar a imagem criada anteriormente.
- Primeiro é necessário ativar as APIs Cloud Build, Artifact Registry e Cloud Run. Execute o seguinte comando no Cloud Shell para ativá-los:
gcloud services enable artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
run.googleapis.com
- Depois de ativar as APIs, execute o comando abaixo para iniciar o processo de build:
gcloud builds submit --tag {{{project_0.default_region | Region}}}-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:1.0.0
Observação: esse processo levará alguns minutos.
- Para acessar o histórico de builds ou acompanhar o processo em tempo real, no console, pesquise Cloud Build e clique no resultado Cloud Build.
- Na página Histórico, você pode ver uma lista de todos os seus builds. Por enquanto, haverá apenas o que você criou.

-
Se clicar no ID do build, você verá todos os detalhes dele, incluindo a saída do registro.
-
Na página Detalhes do build, para ver a imagem do contêiner criada, clique na guia Detalhes da execução e depois no link da imagem.

Clique em Verificar meu progresso para conferir o objetivo.
Criar um contêiner do Docker com o Google Cloud Build
Tarefa 3: implantar o contêiner no Cloud Run
Agora que você já fez a conteinerização do site e enviou o contêiner para o Artifact Registry, é hora implantar no Cloud Run.
Há duas abordagens de implantação no Cloud Run:
-
Cloud Run gerenciado: o modelo de plataforma como serviço em que o ciclo de vida do contêiner é gerenciado pelo próprio Cloud Run. Essa é a abordagem que você usará neste laboratório.
-
Cloud Run no GKE: o Cloud Run com uma camada adicional de controle, que permite integrar seus próprios clusters e pods do GKE. Clique aqui para saber mais.
- Execute este comando para implantar a imagem no Cloud Run:
gcloud run deploy monolith --image {{{project_0.default_region | Region}}}-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:1.0.0 --region {{{project_0.default_region | Region}}}
- Ao receber a solicitação para permitir invocações não autenticadas em
[monolith], digite Y.
Clique em Verificar meu progresso para conferir o objetivo.
Implantar o contêiner no Cloud Run
Verificar a implantação
- Para confirmar que a implantação foi criada corretamente, execute o seguinte comando:
gcloud run services list
Observação: pode levar alguns instantes para o status do pod aparecer como "Em execução.
Saída:
✔
SERVICE: monolith
REGION: {{{project_0.default_region | Region}}}
URL: https://monolith-2cxtmp4m2q-uc.a.run.app
LAST DEPLOYED BY: student-02-aa7a5aed362d@qwiklabs.net
LAST DEPLOYED AT: 2022-08-19T19:16:14.351981Z
A saída mostra várias informações: a implantação, o usuário que a executou, ou seja, seu e-mail e o URL para acessar o aplicativo. Parece que tudo foi criado corretamente.
- Clique no URL que aparece na lista de serviços. Você verá o mesmo site que visualizou localmente.
Observação: você também pode conferir suas implantações do Cloud Run no console. Para isso, acesse o Cloud Run pelo menu de navegação.
Tarefa 4: criar uma revisão com simultaneidade menor
Nesta seção, você vai implantar seu aplicativo de novo. Desta vez, um dos parâmetros deve ser ajustado.
Por padrão, os aplicativos do Cloud Run têm o valor de simultaneidade "80". Isso significa que cada instância do contêiner processará até 80 solicitações por vez. É uma diferença considerável em relação ao modelo Funções como serviço, em que uma instância processa uma solicitação por vez.
- Execute o comando abaixo para implantar novamente a mesma imagem de contêiner com um valor de simultaneidade "1", apenas para teste, e descubra o que acontece:
gcloud run deploy monolith --image {{{project_0.default_region | Region}}}-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:1.0.0 --region {{{project_0.default_region | Region}}} --concurrency 1
- Para conferir os detalhes, no menu de navegação, clique em Cloud Run e depois no serviço do monolith:

- Na página Detalhes do serviço, clique na guia Revisões. Agora haverá duas revisões.
Os detalhes da implantação mais recente estão à direita.

Você verá que o valor de simultaneidade mudou para "1".

Essa configuração pode ser usada para testes, mas geralmente os contêineres processam várias solicitações simultâneas nos cenários de produção.
Clique em Verificar meu progresso para conferir o objetivo.
Criar uma revisão com simultaneidade menor
Em seguida, restaure a simultaneidade original, mas não faça outra implantação. Você pode mudar o valor para o padrão "80" ou para "0", o que removerá as restrições de simultaneidade e definirá o valor máximo, que também é "80".
- Execute este comando para atualizar a revisão atual, usando um valor de simultaneidade
80:
gcloud run deploy monolith --image {{{project_0.default_region | Region}}}-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:1.0.0 --region {{{project_0.default_region | Region}}} --concurrency 80
Você vai perceber que outra revisão foi criada, que o tráfego foi redirecionado e que a simultaneidade voltou para "80".
Observação:
talvez seja necessário sair e voltar à guia Revisões para conferir as informações mais atualizadas.
Tarefa 5: fazer mudanças no site
Situação: sua equipe de marketing solicitou que você mude a página inicial do seu site. Ela quer que a página inclua mais informações sobre a empresa e os produtos vendidos.
Tarefa: para atender ao pedido da equipe de marketing, você vai adicionar um texto à página inicial. Parece que um dos desenvolvedores já criou as alterações. O nome do arquivo atualizado é index.js.new. Você só precisa copiar esse arquivo para index.js, e as mudanças aparecerão na página. Siga as instruções abaixo para fazer as mudanças apropriadas.
- Execute os comandos a seguir para renomear o arquivo atualizado com o nome correto:
cd ~/monolith-to-microservices/react-app/src/pages/Home
mv index.js.new index.js
- Imprima o conteúdo para verificar as alterações:
cat ~/monolith-to-microservices/react-app/src/pages/Home/index.js
O código resultante será parecido com este:
/*
Copyright 2019 Google LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import React from "react";
import { Box, Paper, Typography } from "@mui/material";
export default function Home() {
return (
<Box sx={{ flexGrow: 1 }}>
<Paper
elevation={3}
sx={{
width: "800px",
margin: "0 auto",
padding: (theme) => theme.spacing(3, 2),
}}
>
<Typography variant="h5">Fancy Fashion & Style Online</Typography>
<br />
<Typography variant="body1">
Cansou das ideias de moda convencionais, das tendências populares e das normas sociais?
Esta linha de produtos de estilo de vida vai ajudar você a acompanhar a tendência Fancy e expressar seu estilo pessoal. Comece a comprar produtos Fancy agora!
</Typography>
</Paper>
</Box>
);
}
Os componentes do React foram atualizados, mas você precisa criar o app React para gerar os arquivos estáticos.
- Execute o comando a seguir para criar o aplicativo React e copiar ele no diretório público monolith:
cd ~/monolith-to-microservices/react-app
npm run build:monolith
Agora que o código está atualizado, recrie o contêiner do Docker e publique no Artifact Registry. Você pode usar o mesmo comando de antes, mas atualizará o indicador de versão desta vez.
- Execute este comando para acionar o Cloud Build de novo com a imagem atualizada na versão 2.0.0:
cd ~/monolith-to-microservices/monolith
gcloud builds submit --tag {{{project_0.default_region | Region}}}-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:2.0.0
Na próxima seção, você vai usar essa imagem para atualizar seu aplicativo sem inatividade.
Clique em Verificar meu progresso para conferir o objetivo.
Fazer alterações no site
Tarefa 6: atualizar o site sem causar inatividade
As alterações foram feitas, e a equipe de marketing adorou a nova versão. É hora de atualizar o site sem interromper o serviço para os usuários. O Cloud Run trata cada implantação como uma nova Revisão. Primeiro a revisão será implantada on-line e depois o tráfego será redirecionado para ela.
Por padrão, 100% do tráfego do serviço será atribuído à revisão mais recente. É possível usar "rotas" para alocar porcentagens diferentes de tráfego para revisões específicas em um serviço. Siga as instruções abaixo para atualizar seu site:
- Execute este comando para implantar novamente o serviço e atualizar a imagem para uma nova versão:
gcloud run deploy monolith --image {{{project_0.default_region | Region}}}-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:2.0.0 --region {{{project_0.default_region | Region}}}
Clique em Verificar meu progresso para conferir o objetivo.
Atualizar o site sem causar inatividade
Verificar a implantação
- Execute o comando abaixo para confirmar que a implantação foi atualizada:
gcloud run services describe monolith --platform managed --region {{{project_0.default_region | Region}}}
Saída:
✔ Serviço do monolítico na região
URL: https://monolith-hl5loimtga-uc.a.run.app
Entrada: todo o tráfego:
100% MAIS RECENTE (atualmente monolith-00005-xum)
Última atualização em 2022-08-19T18:39:39.885859Z por student-02-9af04e268b9e@qwiklabs.net:
Revisão monolith-00005-xum
Imagem: -docker.pkg.dev/qwiklabs-gcp-00-30d07cf3de5b/monolith-demo/monolith:2.0.0
Porta: 8080
Memória: 512Mi
CPU: 1000m
Conta de serviço: 467160385597-compute@developer.gserviceaccount.com
Simultaneidade: 80
Máx. de instâncias: 1
Tempo limite: 300s
Observe que o Serviço agora está usando a versão mais recente da imagem, que foi implantada como uma nova revisão.
Para confirmar as alterações, acesse o URL externo do serviço do Cloud Run e atualize a página. Note que o título do aplicativo foi atualizado.
- Execute o comando a seguir para listar os serviços e ver o URL do serviço:
gcloud beta run services list
- Clique no URL do serviço. O site agora mostra o texto que você acabou de incluir no componente da página inicial.

Parabéns!
Você implantou, aumentou e reduziu a escala e atualizou um site no Cloud Run.
Próximas etapas / Saiba mais
Se você não conhece esses produtos, confira os links abaixo para saber mais:
Manual atualizado em 31 de dezembro de 2025
Laboratório testado em 31 de dezembro 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.