arrow_back

Set Up an App Dev Environment on Google Cloud: laboratório com desafio

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

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

GSP315

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 Set Up an App Dev Environment on Google Cloud. Tudo pronto para começar o desafio?

Configuração

Antes de clicar no botão Start Lab

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o 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, 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 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.
  • Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Observação: não use seu projeto ou conta do Google Cloud neste laboratório para evitar cobranças extras na sua conta.

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 Lembranças. 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 criada por você
  • Criar uma função do Cloud
  • Remover o acesso do engenheiro de nuvem anterior ao projeto "Lembranças"

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

Crie uma função do Cloud que vai criar uma miniatura a partir de uma imagem adicionada ao bucket . Verifique se a função do Cloud está usando um ambiente de 2ª geração. Crie o recurso na região e na zona .

  1. Crie uma função do Cloud chamada
Observação: é preciso executar a função do Cloud toda vez que um objeto for criado no bucket criado na Tarefa 1. Durante o processo, a função do Cloud pode pedir permissão para ativar APIs. Ative cada uma das APIs obrigatórias, conforme solicitado.
  1. Defina o Ponto de entrada (função a ser executada) como . Em seguida, selecione Cloud Storage em Gatilho.

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

const functions = require('@google-cloud/functions-framework'); const crc32 = require("fast-crc32c"); const { Storage } = require('@google-cloud/storage'); const gcs = new Storage(); const { PubSub } = require('@google-cloud/pubsub'); const imagemagick = require("imagemagick-stream"); functions.cloudEvent('{{{ project_0.startup_script.function }}}', cloudEvent => { const event = cloudEvent.data; console.log(`Event: ${event}`); console.log(`Hello ${event.bucket}`); const fileName = event.name; const bucketName = event.bucket; const size = "64x64" const bucket = gcs.bucket(bucketName); const topicName = "{{{ project_0.startup_script.topic }}}"; const pubsub = new PubSub(); if ( fileName.search("64x64_thumbnail") == -1 ){ // doesn't have a thumbnail, get the filename extension var filename_split = fileName.split('.'); var filename_ext = filename_split[filename_split.length - 1]; var filename_without_ext = fileName.substring(0, fileName.length - filename_ext.length ); if (filename_ext.toLowerCase() == 'png' || filename_ext.toLowerCase() == 'jpg'){ // only support png and jpg at this point console.log(`Processing Original: gs://${bucketName}/${fileName}`); const gcsObject = bucket.file(fileName); let newFilename = filename_without_ext + size + '_thumbnail.' + filename_ext; let gcsNewObject = bucket.file(newFilename); let srcStream = gcsObject.createReadStream(); let dstStream = gcsNewObject.createWriteStream(); let resize = imagemagick().resize(size).quality(90); srcStream.pipe(resize).pipe(dstStream); return new Promise((resolve, reject) => { dstStream .on("error", (err) => { console.log(`Error: ${err}`); reject(err); }) .on("finish", () => { console.log(`Success: ${fileName} → ${newFilename}`); // set the content-type gcsNewObject.setMetadata( { contentType: 'image/'+ filename_ext.toLowerCase() }, function(err, apiResponse) {}); pubsub .topic(topicName) .publisher() .publish(Buffer.from(newFilename)) .then(messageId => { console.log(`Message ${messageId} published.`); }) .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": "^5.0.0", "fast-crc32c": "1.0.4", "imagemagick-stream": "4.1.1" }, "devDependencies": {}, "engines": { "node": ">=4.3.2" } }

Verifique se a miniatura foi criada corretamente.

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

Tarefa 4: testar a infraestrutura

É necessário fazer upload de uma imagem JPG ou PNG para o bucket

  1. Faça o upload de uma imagem JPG ou PNG para o bucket .
Observação: outra alternativa é fazer download da imagem https://storage.googleapis.com/cloud-training/gsp315/map.jpg no seu computador e, em seguida, fazer upload no bucket.
  1. A imagem da miniatura aparece logo depois disso (use a opção ATUALIZAR em "Detalhes do bucket").

Tarefa 5: 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!

Set Up an App Dev Environment on Google Cloud

Conquiste seu próximo selo de habilidade

Este laboratório autoguiado faz parte do selo de habilidade Set Up an App Dev Environment on Google Cloud. Ao concluir o curso, você ganha o selo acima como reconhecimento por sua conquista. Compartilhe o selo no seu currículo e nas redes sociais e use #GoogleCloudBadge para anunciar sua conquista.

Esse selo de habilidade faz parte dos programas de aprendizado Perform Foundational Infrastructure Tasks in Google Cloud e Cloud Architect do Google. Se você já tiver concluído os outros cursos do seu programa de aprendizado, consulte o catálogo do Google Cloud Ensina e encontre mais selos de habilidade para se inscrever.

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 21 de março de 2024

Laboratório testado em 19 de setembro de 2023

Copyright 2024 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