arrow_back

Olá, Cloud Run

Teste e compartilhe seu conhecimento com nossa comunidade.
done
Tenha acesso a mais de 700 laboratórios, selos de habilidade e cursos

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.
Teste e compartilhe seu conhecimento com nossa comunidade.
done
Tenha acesso a mais de 700 laboratórios, selos de habilidade e cursos

Informações gerais

Logotipo do Cloud Run

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: clique em Menu de navegação no canto superior esquerdo para acessar uma lista de produtos e serviços do Google Cloud. Ícone do menu de navegação

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.

    Ícone do Cloud Shell em destaque

  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:

ID do projeto em destaque no terminal do Cloud Shell

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: ative a API Cloud Run e configure 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: crie 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: conteinerize seu app e faça 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 # Use the official lightweight Node.js 12 image. # https://hub.docker.com/_/node FROM node:12-slim # Create and change to the app directory. WORKDIR /usr/src/app # Copy application dependency manifests to the container image. # A wildcard is used to ensure copying both package.json AND package-lock.json (when available). # Copying this first prevents re-running npm install on every code change. COPY package*.json ./ # Install production dependencies. # If you add a package-lock.json, speed your build by switching to 'npm ci'. # RUN npm ci --only=production RUN npm install --only=production # Copy local code to the container image. COPY . ./ # Run the web service on container startup. 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: implante 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)] (Y/N)?. Se você quiser que as APIs continuem, digite Y para ativar as que forem necessárias.

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 da solicitação.

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.

Guia do Cloud Run mostrando o serviço helloworld

Tarefa 5: faça a 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.

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