Carregando...
Nenhum resultado encontrado.

Google Cloud Ensina

Aplique suas habilidades no console do Google Cloud


Acesse mais de 700 laboratórios e cursos

Como configurar um ambiente de desenvolvimento de apps no Google Cloud: laboratório com desafio

Laboratório 1 hora universal_currency_alt 1 crédito 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

GSP315

Logotipo dos laboratórios autoguiados do Google Cloud

Introdução

Nos laboratórios com desafio, apresentamos uma situação e um conjunto de tarefas. Para concluí-las, em vez de seguir instruções detalhadas, você usará o que aprendeu nos laboratórios do curso. Um sistema automático de pontuação (mostrado nesta página) vai avaliar seu desempenho.

Nos laboratórios com desafio, não ensinamos novos conceitos do Google Cloud. O objetivo dessas tarefas é aprimorar aquilo que você já aprendeu, como a alteração de valores padrão ou a leitura e pesquisa de mensagens para corrigir seus próprios erros.

Para alcançar a pontuação de 100%, você precisa concluir todas as tarefas no tempo definido.

Este laboratório é recomendado para estudantes que se inscreveram no selo de habilidade Como configurar um ambiente de desenvolvimento de apps no Google Cloud. Tudo pronto para começar o desafio?

Configuração

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.

Cenário do desafio

Você começou a trabalhar no cargo júnior de engenharia de nuvem na Jooli Inc., onde ajuda as equipes a criar e gerenciar os recursos do Google Cloud.

Seu conhecimento deve ser suficiente para realizar essas tarefas sem guias explicativos.

Seu desafio

Você precisa ajudar uma equipe de desenvolvimento recém-criada com as tarefas iniciais de um projeto novo de armazenamento e organização de fotos, chamado Recordações. A equipe pede para você definir as configurações iniciais do ambiente de desenvolvimento de aplicativos.

Você recebe o pedido para concluir estas tarefas:

  • Criar um bucket para armazenar fotos.
  • Criar um tópico do Pub/Sub que será usado pela função do Cloud Run que você irá criar.
  • Criar uma função do Cloud Run.
  • Remover o acesso do engenheiro de nuvem anterior ao projeto "Recordações".

Confira algumas normas da Jooli Inc. que é preciso seguir:

  • Crie todos os recursos na região e na zona , a menos que haja uma instrução diferente.
  • Use as VPCs do projeto.
  • Os nomes têm o formato equipe-recurso. Por exemplo, o nome de uma instância pode ser kraken-webserver1.
  • Economize recursos. Como os projetos são monitorados, o uso excessivo de recursos pode levar ao encerramento desse projeto (e talvez da sua função). Por isso, tenha cuidado. Esta é a orientação da equipe de monitoramento: a menos que haja uma instrução diferente, use e2-micro para pequenas VMs do Linux e e2-medium para Windows ou outros aplicativos, como nós do Kubernetes.

Essas tarefas são descritas em detalhes a seguir. Boa sorte!

Tarefa 1: criar um bucket

É preciso criar um bucket com o nome para armazenar as fotos. Crie o recurso na região e na zona .

Clique em Verificar meu progresso para conferir o objetivo. Crie um bucket com o nome

Tarefa 2: criar um tópico do Pub/Sub

Crie um tópico do Pub/Sub com o nome para que a função do Cloud Run envie mensagens.

Clique em Verificar meu progresso para conferir o objetivo. Crie um tópico do Pub/Sub com o nome

Tarefa 3: criar a miniatura da função do Cloud Run

Criar a função

Crie uma função do Cloud Run , que vai gerar uma miniatura a partir de uma imagem adicionada ao bucket .

Verifique se a função do Cloud Run está usando o ambiente Cloud Run functions (2ª geração). Crie o recurso na região e na zona .

  1. Crie uma função do Cloud Run (2ª geração) chamada usando o Node.js 22.
Observação: é preciso executar a função do Cloud Run toda vez que um objeto for criado no bucket da Tarefa 1. Durante o processo, a função poderá pedir permissão para ativar APIs ou conceder papéis a contas de serviço. Ative cada uma das APIs necessárias e conceda os papéis conforme solicitado.
  1. Defina o Ponto de entrada (função a ser executada) como e o Gatilho como Cloud Storage.

  2. Adicione o código a seguir a index.js:

const functions = require('@google-cloud/functions-framework'); const { Storage } = require('@google-cloud/storage'); const { PubSub } = require('@google-cloud/pubsub'); const sharp = require('sharp'); functions.cloudEvent('{{{ project_0.startup_script.function }}}', async cloudEvent => { const event = cloudEvent.data; console.log(`Event: ${JSON.stringify(event)}`); console.log(`Hello ${event.bucket}`); const fileName = event.name; const bucketName = event.bucket; const size = "64x64"; const bucket = new Storage().bucket(bucketName); const topicName = "{{{ project_0.startup_script.topic }}}"; const pubsub = new PubSub(); if (fileName.search("64x64_thumbnail") === -1) { // não tem uma miniatura, extraia a extensão do nome de arquivo const filename_split = fileName.split('.'); const filename_ext = filename_split[filename_split.length - 1].toLowerCase(); const filename_without_ext = fileName.substring(0, fileName.length - filename_ext.length - 1); // corrija a substring para remover o ponto if (filename_ext === 'png' || filename_ext === 'jpg' || filename_ext === 'jpeg') { // por enquanto, só aceita png e jpg console.log(`Processing Original: gs://${bucketName}/${fileName}`); const gcsObject = bucket.file(fileName); const newFilename = `${filename_without_ext}_64x64_thumbnail.${filename_ext}`; const gcsNewObject = bucket.file(newFilename); try { const [buffer] = await gcsObject.download(); const resizedBuffer = await sharp(buffer) .resize(64, 64, { fit: 'inside', withoutEnlargement: true, }) .toFormat(filename_ext) .toBuffer(); await gcsNewObject.save(resizedBuffer, { metadata: { contentType: `image/${filename_ext}`, }, }); console.log(`Success: ${fileName} → ${newFilename}`); await pubsub .topic(topicName) .publishMessage({ data: Buffer.from(newFilename) }); console.log(`Message published to ${topicName}`); } catch (err) { console.error(`Error: ${err}`); } } else { console.log(`gs://${bucketName}/${fileName} is not an image I can handle`); } } else { console.log(`gs://${bucketName}/${fileName} already has a thumbnail`); } });
  1. Adicione o código a seguir a package.json:
{ "name": "thumbnails", "version": "1.0.0", "description": "Create Thumbnail of uploaded image", "scripts": { "start": "node index.js" }, "dependencies": { "@google-cloud/functions-framework": "^3.0.0", "@google-cloud/pubsub": "^2.0.0", "@google-cloud/storage": "^6.11.0", "sharp": "^0.32.1" }, "devDependencies": {}, "engines": { "node": ">=4.3.2" } } Observação: se você receber um erro de permissão recusada informando que pode levar alguns minutos até que todas as permissões necessárias sejam propagadas para o agente de serviço, aguarde alguns minutos e tente de novo. Verifique se todos os papéis relevantes (Agente de Serviço e Receptor de Eventos do Eventarc, Criador do Token da Conta de Serviço e Publicador do Pub/Sub) estão atribuídos às contas de serviço.

Testar a função

  • Faça upload de uma imagem PNG ou JPG de sua escolha para o bucket .
Observação: uma alternativa é baixar a imagem https://storage.googleapis.com/cloud-training/gsp315/map.jpg no seu computador e enviá-la para o bucket.

A imagem da miniatura vai aparecer logo em seguida (use a opção ATUALIZAR na página de detalhes do bucket).

Após enviar o arquivo de imagem, clique abaixo para conferir seu progresso. Não é necessário esperar a criação da miniatura.

Opcional: se a função for implantada e você não encontrar a miniatura no bucket, verifique se a guia Gatilhos mostra as informações de gatilho que você forneceu anteriormente para a função. Se houver erros anteriores, talvez a função não tenha sido salva corretamente. Se o gatilho do Cloud Storage não estiver na guia Gatilhos da função, recrie-o (consulte a página de documentação Criar um gatilho para serviços) e envie um novo arquivo para testar outra vez (atualize a página depois de adicionar um novo arquivo).

Clique em Verificar meu progresso para conferir o objetivo. Verifique a função do Cloud Run

Tarefa 4: remover o engenheiro de nuvem anterior

Você perceberá que há dois usuários definidos no projeto:

  • um é sua conta ( com o papel de Proprietário);
  • o outro é o engenheiro de nuvem anterior ( com o papel de Leitor).
  1. Remova o acesso do engenheiro de nuvem anterior ao projeto.

Clique em Verificar meu progresso para conferir o objetivo. Remova o engenheiro de nuvem anterior

Parabéns!

Como configurar um ambiente de desenvolvimento de apps no Google Cloud

Próximas etapas / Saiba mais

Este selo de habilidade faz parte dos programas de aprendizado Executar tarefas básicas de infraestrutura no Google Cloud e Cloud Architect do Google. Se você já concluiu os demais cursos do seu programa de aprendizado, consulte o catálogo do Google Cloud Ensina para encontrar outras opções disponíveis.

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 8 de março de 2025

Laboratório testado em 8 de março de 2025

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