Acesse mais de 700 laboratórios e cursos

Como implantar um aplicativo conteinerizado no 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.
Acesse mais de 700 laboratórios e cursos

Visão geral

O Cloud Run é uma plataforma de computação totalmente gerenciada que permite executar contêineres sem estado que podem ser invocados com solicitações HTTP. Você pode implantar um código escrito em qualquer linguagem de programação no Cloud Run se uma imagem de contêiner puder ser criada com base nele. Você pode usar a opção de implantação baseada em origem, que cria o contêiner para você, ao desenvolver seu aplicativo em Go, Node.js, Python, Java, .NET Core ou Ruby.

O Cloud Run é sem servidor e executa seus contêineres na infraestrutura escalonável do Google. Ele é baseado no Knative e permite que você escolha executar seus contêineres totalmente gerenciados com o Cloud Run ou no cluster do Google Kubernetes Engine com o Cloud Run no GKE.

O Cloud Run funciona bem com outros serviços do Google Cloud, para que você possa criar aplicativos completos sem gastar muito tempo operando, configurando e escalonando seu serviço do Cloud Run.

Objetivos

Neste laboratório, você vai:

  • Usar o Cloud Build para criar uma imagem de contêiner do Docker para o aplicativo.
  • Implantar a imagem do contêiner no Cloud Run.
  • Executar e testar o aplicativo em contêiner.

Processo de criação e implantação

Configuração

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

  1. Faça login no Qwiklabs em uma janela anônima.

  2. Confira o tempo de acesso do laboratório (por exemplo, 1:15:00) e finalize todas as atividades nesse prazo.
    Não é possível pausar o laboratório. Você pode reiniciar o desafio, mas vai precisar refazer todas as etapas.

  3. Quando tudo estiver pronto, clique em Começar o laboratório.

  4. Anote as credenciais (Nome de usuário e Senha). É com elas que você vai fazer login no Console do Google Cloud.

  5. Clique em Abrir Console do Google.

  6. Clique em Usar outra conta, depois copie e cole as credenciais deste laboratório nos locais indicados.
    Se você usar outras credenciais, vai receber mensagens de erro ou cobranças.

  7. Aceite os termos e pule a página de recursos de recuperaçã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 .

Tarefa 1: configurar o projeto e o ambiente

Nesta tarefa, você vai definir variáveis de ambiente para o ambiente do Cloud Shell e ativar as APIs relevantes do Google para usar neste laboratório.

  1. Faça login no console do Google Cloud com as credenciais do laboratório e abra a janela do terminal do Cloud Shell.

  2. Para definir as variáveis de ambiente com o ID do projeto e a região, execute estes comandos no Cloud Shell:

    PROJECT_ID=$(gcloud config get-value project) REGION={{{project_0.default_region|Region}}}
  3. Para ativar as APIs relevantes, execute o seguinte comando:

    gcloud services enable artifactregistry.googleapis.com \ cloudbuild.googleapis.com \ run.googleapis.com

Para conferir o objetivo, clique em Verificar meu progresso. Ativar as APIs relevantes.

Tarefa 2: testar o aplicativo localmente

Nesta tarefa, você vai copiar um aplicativo de amostra do Node.js. Em seguida, você vai criar e executar o app localmente no ambiente do Cloud Shell.

Copiar o aplicativo

  1. Crie um diretório app e defina-o como o diretório de trabalho atual:

    mkdir app && cd app
  2. Para copiar o app do Cloud Storage e extrair os arquivos, execute o seguinte comando:

    gsutil cp gs://cloud-training/CBL515/sample-apps/sample-node-app.zip . && unzip sample-node-app

Instale as dependências do aplicativo

  1. Mude para o diretório do app:

    cd sample-node-app
  2. Para visualizar o código-fonte do aplicativo, veja o conteúdo do arquivo server.js no diretório de nível superior:

    cat server.js Este é o ponto de entrada principal do aplicativo. Este aplicativo de amostra é um serviço de varejo básico que fornece uma API que retorna dados de produtos quando solicitações são feitas ao aplicativo por HTTP.
  3. Para instalar os módulos de dependência do app localmente, execute o seguinte comando:

    npm install

Testar o aplicativo

  1. Para iniciar o aplicativo localmente, execute o seguinte comando:

    npm start

    Você verá esta resposta:

    > sample-node-app@1.0.0 start > node server.js Sample-node-app listening on port 8080!
  2. Para abrir uma segunda janela de terminal do Cloud Shell, na barra de navegação do Cloud Shell, clique em (Adicionar).

  3. Teste a API de amostra fazendo algumas solicitações HTTP ao aplicativo:

    curl http://localhost:8080/service/products | jq Usamos a ferramenta de linha de comando jq para analisar e formatar a resposta JSON do aplicativo.

    O aplicativo deve responder com uma lista de produtos:

    [ { "id": "1YMWWN1N4O", "name": "Home Barista Kit", "description": "Always wanted to brew coffee with Chemex and Aeropress at home?", "picture": "static/img/products/barista-kit.jpg", "cost": 124, "categories": [ "cookware" ] }, { "id": "L9ECAV7KIM", "name": "Terrarium", "description": "This terrarium will look great in your white painted living room.", "picture": "static/img/products/terrarium.jpg", "cost": 36.45, "categories": [ "gardening" ] }, { "id": "2ZYFJ3GM2N", "name": "Film Camera", "description": "This camera looks like it's a film camera, but it's actually digital.", "picture": "static/img/products/film-camera.jpg", "cost": 2245, "categories": [ "photography", "vintage" ] }, { "id": "LS4PSXUNUM", "name": "Metal Camping Mug", "description": "You probably don't go camping that often but this is better than plastic cups.", "picture": "static/img/products/camp-mug.jpg", "cost": 24.33, "categories": [ "cookware" ] }, { "id": "9SIQT8TOJO", "name": "City Bike", "description": "This single-gear bike probably cannot climb the hills of San Francisco.", "picture": "static/img/products/city-bike.jpg", "cost": 789.5, "categories": [ "cycling" ] }, { "id": "6E92ZMYYFZ", "name": "Air Plant", "description": "Have you ever wondered whether air plants need water? Buy one and figure out.", "picture": "static/img/products/air-plant.jpg", "cost": 12.3, "categories": [ "gardening" ] } ]
  4. Faça uma segunda solicitação de API para buscar um produto específico por ID:

    curl http://localhost:8080/service/products/1YMWWN1N4O | jq

    O aplicativo deve responder com detalhes sobre o produto específico:

    { "id": "1YMWWN1N4O", "name": "Home Barista Kit", "description": "Always wanted to brew coffee with Chemex and Aeropress at home?", "picture": "static/img/products/barista-kit.jpg", "cost": 124, "categories": [ "cookware" ] }
  5. Para sair do aplicativo, na primeira janela do terminal do Cloud Shell, digite Ctrl+C.

Tarefa 3: conteinerizar o aplicativo com o Cloud Build

O Cloud Build é um serviço que executa seus builds no Google Cloud. Com o Cloud Build, é possível criar, testar e implantar seu aplicativo continuamente usando um pipeline de integração e entrega contínuas (CI/CD).

Para fornecer instruções ao Cloud Build, você cria um arquivo de configuração do build que contém um conjunto de tarefas. Essas instruções podem configurar builds para buscar dependências, executar testes de unidade e integração, realizar análises estáticas e criar artefatos com ferramentas de build como Docker, Gradle, Maven e outras.

Nesta tarefa, você vai usar o Cloud Build para criar um contêiner do Docker para seu aplicativo e enviar a imagem de contêiner resultante para um repositório no Artifact Registry.

Criar o repositório

  1. No campo Pesquisar da barra de título do console do Google Cloud, digite Artifact Registry, clique em Pesquisar e selecione Artifact Registry.

  2. Clique em (Fixar Fixar) ao lado de Artifact Registry.

  3. Clique em Criar repositório.

  4. Na página Criar repositório, forneça as informações a seguir e mantenha as outras configurações padrão:

    Name

    my-repo

    Format

    Docker

    Location type

    Region

    Region

  5. Clique em Criar e aguarde a criação da rede.

Autenticar o Docker para usar o repositório

Antes de enviar imagens para o repositório, você precisa configurar o Docker para autenticar solicitações ao repositório no Artifact Registry.

  1. Para configurar a autenticação nos repositórios do Docker na região , execute o seguinte comando no Cloud Shell:

    gcloud auth configure-docker ${REGION}-docker.pkg.dev
  2. Quando solicitado, digite Y.

Crie o arquivo de configuração do build

Para fornecer instruções ao Cloud Build, você cria um arquivo de configuração do build que contém um conjunto de tarefas. Essas instruções podem configurar builds para buscar dependências, executar testes de unidade e integração, realizar análises estáticas e criar artefatos com builders como Docker, Gradle, Maven e outros.

  1. Defina uma variável de ambiente para o nome do repositório:

    REPO=${REGION}-docker.pkg.dev/${PROJECT_ID}/my-repo
  2. Crie o arquivo de configuração do build:

    cat > cloudbuild.yaml <<EOF steps: - name: 'gcr.io/cloud-builders/docker' args: [ 'build', '-t', '${REPO}/sample-node-app-image', '.' ] images: - '${REPO}/sample-node-app-image' EOF
  3. Veja o arquivo cloudbuild.yaml:

    cat cloudbuild.yaml A etapa de build cria uma imagem de contêiner usando o builder do Docker do código-fonte e o Dockerfile, que estão localizados no diretório atual. A imagem criada é enviada para o repositório no Artifact Registry.

Criar o contêiner

  1. Para criar o contêiner com o Cloud Build, execute o seguinte comando:

    gcloud builds submit --region=$REGION --config=cloudbuild.yaml

    Confira uma resposta similar (parcial) ao comando:

    ... ... b3389e626b47: Pushed 38610c0cfc18: Pushed latest: digest: sha256:b6007afa5e8fb05d8ac617ddf5fee8d58cc6ba8901038c97f8e360520c5fdbf4 size: 3051 DONE ---------------------------------------------------------------------------------------------------------------------------------------- ID: f803a828-dc50-41cb-bc94-71dfb8c83648 CREATE_TIME: 2023-02-28T18:28:41+00:00 DURATION: 1M23S SOURCE: gs://qwiklabs-gcp-02-26de4317fac8_cloudbuild/source/1677608919.352478-c157fa4ae8544b3dbba23b5f29145286.tgz IMAGES: asia-east1-docker.pkg.dev/qwiklabs-gcp-02-26de4317fac8/my-repo/sample-node-app-image (+1 more) STATUS: SUCCESS

    Primeiro, o Cloud Build faz upload do código-fonte do aplicativo e de outros arquivos do diretório especificado para o Cloud Storage. Em seguida, ele cria a imagem do contêiner que contém o aplicativo com base nas instruções especificadas na configuração de build e no Dockerfile, marca a imagem com o nome e envia a imagem para o repositório no Artifact Registry.

Ver histórico de builds

  1. No campo Pesquisar da barra de título do console do Google Cloud, digite Cloud Build, clique em Pesquisar e selecione Cloud Build.

  2. Em Região, selecione .

  3. Clique no ID do primeiro build da lista.

    Os detalhes do build, incluindo o registro do build, vão aparecer.

Visualizar a imagem do contêiner no Artifact Registry

  1. Depois que o comando de build for concluído, no console do Google Cloud, no menu de navegação (menu de navegação), clique em Artifact Registry > Repositórios.

  2. Clique no repositório my-repo para mostrar a imagem de contêiner sample-node-app-image.

Para conferir o objetivo, clique em Verificar meu progresso. Criar uma imagem de contêiner com o Cloud Build.

Tarefa 4: implantar o contêiner no Cloud Run

Com a imagem do contêiner criada, agora você pode implantá-la no Cloud Run. Há duas abordagens de implantação no Cloud Run:

  • Cloud Run gerenciado: um modelo de serviço em que todo o ciclo de vida do contêiner é gerenciado pelo Cloud Run. Você vai usar essa abordagem neste laboratório.

  • Cloud Run no Anthos: Cloud Run com uma camada extra de controle, que permite integrar seus próprios clusters e pods do GKE.

Nesta tarefa, você vai implantar sua imagem de contêiner no serviço totalmente gerenciado do Cloud Run no Google Cloud.

  1. Para implantar a imagem do contêiner, execute este comando no Cloud Shell:

    gcloud run deploy sample-node-app --image ${REPO}/sample-node-app-image --region $REGION --allow-unauthenticated A opção allow-unauthenticated permite o acesso ao serviço sem exigir autenticação.
  2. Depois que o comando for concluído, no console do Google Cloud, no menu de navegação (menu de navegação), clique em Cloud Run.

  3. Para mostrar os detalhes do serviço do Cloud Run, clique no nome do serviço sample-node-app.

Para conferir o objetivo, clique em Verificar meu progresso. Implantar a imagem do contêiner no Cloud Run.

Tarefa 5: testar o aplicativo no Cloud Run

  1. Para verificar se o serviço está em execução e disponível para aceitar solicitações, execute este comando no Cloud Shell:

    gcloud run services list

    A resposta do comando é semelhante a:

    ✔ SERVICE: sample-node-app REGION: asia-east1 URL: https://sample-node-app-dduno3adrq-uc.a.run.app LAST DEPLOYED BY: student-04-329a97f025fd@qwiklabs.net LAST DEPLOYED AT: 2023-02-28T22:21:04.803928Z
  2. Na resposta do comando, copie o valor do URL e cole-o no comando curl, acrescentando service/products ao final do URL, conforme mostrado. Transmita a resposta para o comando jq e pressione ENTER:

    curl https://sample-node-app-dduno3adrq-uc.a.run.app/service/products | jq

    A resposta deve ser parecida com a que o aplicativo gerou ao ser executado localmente em uma tarefa anterior.

Para conferir o objetivo, clique em Verificar meu progresso. Testar o aplicativo implantado no Cloud Run.

Parabéns!

Neste laboratório, você:

  • Usou o Cloud Build para criar uma imagem de contêiner do Docker para seu aplicativo e implantou a imagem de contêiner no Cloud Run.
  • Testou o aplicativo localmente e no Cloud Run para verificar se ele funciona conforme o esperado.

Próximas etapas / Saiba mais

Para mais informações, consulte a documentação em:

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.

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.