arrow_back

Olá, Cloud Run

Get access to 700+ labs and courses

Olá, Cloud Run

Laboratório 1 hora universal_currency_alt 5 créditos show_chart Introdutório
info Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.
Get access to 700+ labs and courses

Informações gerais

O Cloud Run é uma plataforma de computação gerenciada onde você executa contêineres sem estado que podem ser invocados usando solicitações HTTP. O Cloud Run não tem servidor. Ele cuida de todo o gerenciamento da infraestrutura para que você possa se concentrar no que mais importa: criar aplicativos incríveis.

O Cloud Run foi desenvolvido usando o Knative. Por isso, você pode executar contêineres de maneira totalmente gerenciada com o próprio Cloud Run ou em um cluster do Google Kubernetes Engine com o Cloud Run no GKE.

O objetivo deste laboratório é criar uma imagem de aplicativo conteinerizado simples que será implantada no Cloud Run.

Objetivos

Neste laboratório, você vai aprender a:

  • ativar a API Cloud Run;
  • criar um aplicativo Node.js simples que pode ser implantado como um contêiner sem servidor e estado;
  • conteinerizar seu aplicativo e fazer upload dele para o Artifact Registry.
  • implantar um aplicativo conteinerizado no Cloud Run.
  • excluir imagens desnecessárias para evitar cobranças adicionais de armazenamento.

Configuração e requisitos

Para cada laboratório, você recebe um novo projeto do Google Cloud e um conjunto de recursos por um determinado período sem custo financeiro.

  1. Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para 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 | "Nome de usuário"}}}

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

  4. Clique em Seguinte.

  5. Copie a Senha abaixo e cole na caixa de diálogo de boas-vindas.

    {{{user_0.password | "Senha"}}}

    Você também encontra a Senha no painel Detalhes do laboratório.

  6. Clique em Seguinte.

    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 uma lista de produtos e serviços do Google Cloud, clique no Menu de navegação no canto superior esquerdo ou digite o nome do serviço ou produto no campo Pesquisar.

Ative o Google Cloud Shell

O Google Cloud Shell é uma máquina virtual com 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. No console do Cloud, clique no botão "Abrir o Cloud Shell" na barra de ferramentas superior direita.

  2. Clique em Continuar.

O provisionamento e a conexão do ambiente podem demorar um pouco. Quando você estiver conectado, já estará autenticado, e o projeto estará definido com seu PROJECT_ID. Exemplo:

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

  • Para listar o nome da conta ativa, use este comando:
gcloud auth list

Saída:

Credentialed accounts: - @.com (active)

Exemplo de saída:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Para listar o ID do projeto, use este comando:
gcloud config list project

Saída:

[core] project =

Exemplo de saída:

[core] project = qwiklabs-gcp-44776a13dea667a6 Observação: a documentação completa da gcloud está disponível no guia com informações gerais sobre a gcloud CLI .

Referência

Comandos básicos do Linux

Abaixo, você encontra uma lista de referências com alguns dos comandos mais básicos do Linux que podem aparecer nas instruções ou blocos de código deste laboratório.

Comando --> Ação . Comando --> Ação
mkdir (criar diretório) cria uma nova pasta . cd (mudar diretório) muda o local para outra pasta
ls (listar ) lista arquivos e pastas no diretório . cat (concatenar) lê o conteúdo de um arquivo sem usar um editor
apt-get update atualiza a biblioteca do gerenciador de pacotes . ping sinal para testar a acessibilidade de um host
mv (mover ) move um arquivo . cp (copiar) cria uma cópia do arquivo
pwd (apresentar diretório de trabalho) retorna o local atual . sudo (ação de superusuário) concede privilégios de administração

Tarefa 1: ativar a API Cloud Run e configurar seu ambiente shell

  1. No Cloud Shell, ative a API Cloud Run:
gcloud services enable run.googleapis.com
  1. Se for solicitado, autorize o uso das suas credenciais. Depois, você verá uma mensagem de sucesso parecida com esta:
Operation "operations/acf.cc11852d-40af-47ad-9d59-477a12847c9e" finished successfully. Observação: também é possível ativar a API na seção APIs e serviços do console.
  1. Defina a região de computação:
gcloud config set compute/region {{{project_0.default_region | "REGION"}}}
  1. Crie uma variável de ambiente "LOCATION":
LOCATION="{{{project_0.default_region | Region}}}"

Tarefa 2: criar o aplicativo de exemplo

Nesta tarefa, você vai criar um aplicativo simples em Node.js baseado no Express que responde a solicitações HTTP.

  1. No Cloud Shell, crie um novo diretório chamado helloworld e depois mova sua visualização para ele:
mkdir helloworld && cd helloworld
  1. Agora, você vai criar e editar os arquivos. Para fazer mudanças, use o nano ou clique no botão Abrir editor no Cloud Shell para usar o editor de código da ferramenta.

  2. Crie um arquivo package.json e adicione este conteúdo a ele:

nano package.json { "name": "helloworld", "description": "Simple hello world sample in Node", "version": "1.0.0", "main": "index.js", "scripts": { "start": "node index.js" }, "author": "Google LLC", "license": "Apache-2.0", "dependencies": { "express": "^4.17.1" } }

O arquivo acima contém principalmente um comando de script de início e uma dependência no framework Express para aplicativos da Web.

  1. Pressione CTRL+X, depois Y e, por último, Enter para salvar o arquivo package.json.

  2. No mesmo diretório, crie um arquivo index.js e cole estas linhas nele:

nano index.js const express = require('express'); const app = express(); const port = process.env.PORT || 8080; app.get('/', (req, res) => { const name = process.env.NAME || 'World'; res.send(`Hello ${name}!`); }); app.listen(port, () => { console.log(`helloworld: listening on port ${port}`); });

Esse código cria um servidor da Web básico que detecta na porta definida pela variável de ambiente PORT. O app está concluído e pronto para conteinerização e upload no Artifact Registry.

  1. Pressione CTRL+X, depois Y e, por último, Enter para salvar o arquivo index.js
Observação: você pode começar a usar o Cloud Run com outras linguagens também. Acesse o Guia de início rápido para conferir instruções para Go, Python, Java, PHP, Ruby, scripts de shell, entre outros.

Tarefa 3: conteinerizar seu app e fazer upload dele para o Artifact Registry

  1. Para conteinerizar o app de exemplo, crie um novo arquivo chamado Dockerfile no mesmo diretório dos arquivos de origem e adicione o seguinte:
nano Dockerfile # Usa a imagem oficial lightweight do Node.js 12. # https://hub.docker.com/_/node FROM node:12-slim # Cria o diretório do app e entra nele. WORKDIR /usr/src/app # Copia os manifestos de dependências da aplicação para a imagem do contêiner. # Um caractere curinga é usado para garantir a cópia tanto de package.json quanto de package-lock.json (caso esteja disponível). # Copiar isso antes evita que npm install seja re-executado a cada mudança no código. COPY package*.json ./ # Instala dependências de produção. # Caso você adicione um package-lock.json, acelere seu build trocando para 'npm ci'. # RUN npm ci --only=production RUN npm install --only=production # Copia o código local para a imagem do contêiner. COPY . ./ # Executa o web service na inicialização do contêiner. CMD [ "npm", "start" ]
  1. Pressione CTRL+X, depois Y e por último Enter para salvar o arquivo Dockerfile.

  2. Crie a imagem do contêiner usando o Cloud Build. Para isso, execute o comando a seguir no diretório que tem seu Dockerfile. A variável de ambiente $GOOGLE_CLOUD_PROJECT no comando contém o ID do projeto do laboratório:

gcloud builds submit --tag gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld

O Cloud Build é um serviço que executa seus builds no Google Cloud. Ele segue uma série de etapas do build, cada uma em um contêiner do Docker, para produzir o contêiner do seu aplicativo (ou outros artefatos) e enviá-lo ao Artifact Registry, tudo em um comando.

Depois disso, a mensagem "SUCCESS" vai aparecer com o nome da imagem (gcr.io/[PROJECT-ID]/helloworld). A imagem é armazenada no Artifact Registry e pode ser reutilizada se você quiser.

  1. Liste todas as imagens do contêiner associadas ao projeto atual usando este comando:
gcloud container images list
  1. Registre a gcloud como auxiliar de credenciais para todos os registros do Docker compatíveis com o Google:
gcloud auth configure-docker Observação: talvez apareça a mensagem Do you want to continue? [Você quer continuar?] (Y/N)? Se você quiser continuar, digite Y.
  1. Para executar e testar o aplicativo localmente no Cloud Shell, inicie-o usando este comando padrão do docker:
docker run -d -p 8080:8080 gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld
  1. Na janela do Cloud Shell, clique em Visualização na Web e selecione Visualizar na porta 8080.

Uma janela do navegador será aberta com a mensagem "Hello World!". Também é possível usar curl localhost:8080.

Tarefa 4: implantar no Cloud Run

  1. Para implantar seu aplicativo conteinerizado no Cloud Run, use o seguinte comando com o ID do projeto:
gcloud run deploy --image gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld --allow-unauthenticated --region=$LOCATION

A flag "allow-unauthenticated" no comando acima torna seu serviço disponível publicamente.

  1. Se for solicitado, confirme o service name pressionando Enter.
Observação: talvez apareça a pergunta Do you want enable these APIs to continue (this will take a few minutes)? [Quer ativar essas APIs para continuar (isso vai levar alguns minutos), em tradução livre] (Y/N)? Se você quiser ativar a API necessária, digite Y.

Aguarde alguns instantes até a implantação terminar.

Em caso de sucesso, a linha de comando vai exibir o URL de serviço:

Service [helloworld] revision [helloworld-00001-xit] has been deployed and is serving 100 percent of traffic. Service URL: https://helloworld-h6cp412q3a-uc.a.run.app

Agora você pode acessar o contêiner implantado abrindo o URL de serviço em qualquer janela do navegador.

Parabéns! Você acabou de implantar um aplicativo empacotado em uma imagem de contêiner no Cloud Run. O Cloud Run escalona de maneira automática e horizontal a imagem do contêiner para processar as solicitações recebidas, depois reduz o escalonamento quando a demanda diminui. No seu ambiente, você paga apenas pela CPU, memória e rede consumidas durante o processamento de solicitações.

Neste laboratório, você usou a linha de comando gcloud. O Cloud Run também está disponível no console do Cloud.

  • No Menu de navegação, na seção "Sem servidor", clique em Cloud Run. Você vai encontrar seu serviço helloworld na lista.

Tarefa 5: limpeza

O Cloud Run não gera custos quando o serviço não está em uso, mas você ainda vai receber cobranças pelo armazenamento da imagem de contêiner que você criou.

  1. Para evitar cobranças, exclua seu projeto do Google Cloud para interromper o faturamento de todos os recursos usados ou apague sua imagem helloworld usando este comando:
gcloud container images delete gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld
  1. Quando for solicitado que você prossiga, digite Y e pressione Enter.

  2. Para excluir o serviço do Cloud Run, use este comando:

gcloud run services delete helloworld --region={{{project_0.default_region | "REGION"}}}
  1. Quando for solicitado que você prossiga, digite Y e pressione Enter.

Finalize o laboratório

Clique em Terminar o laboratório após a conclusão. O Google Cloud Ensina remove os recursos usados e limpa a conta por você.

Você vai poder avaliar sua experiência no laboratório. Basta selecionar o número de estrelas, digitar um comentário e clicar em Enviar.

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 Suporte.

Parabéns!

Você concluiu este laboratório!

Próximas etapas / Saiba mais

Para saber como criar um contêiner HTTP sem estado compatível com o Cloud Run a partir do código-fonte e enviá-lo para o Artifact Registry, consulte:

Copyright 2020 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.

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

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

One lab at a time

Confirm to end all existing labs and start this one

Use private browsing to run the lab

Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.