Quick tip: Review the prerequisites before you 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.
Teste e compartilhe seu conhecimento com nossa comunidade.
done
Tenha acesso a mais de 700 laboratórios, selos de habilidade e cursos
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.
Teste e compartilhe seu conhecimento com nossa comunidade.
done
Tenha acesso a mais de 700 laboratórios, selos de habilidade e cursos
GSP315
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.
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 Run que você criou.
Criar uma função do Cloud Run.
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 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
Crie uma função do Cloud Run que vai criar 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 .
Crie uma função do Cloud Run chamada
Observação:
é preciso executar a função do Cloud Run toda vez que um objeto for criado no bucket criado na Tarefa 1.
Durante o processo, a função do Cloud Run pode pedir permissão para ativar APIs.
Ative cada uma das APIs obrigatórias, conforme solicitado.
Defina o Ponto de entrada (função a ser executada) como . Em seguida, selecione Cloud Storage em Gatilho.
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`);
}
});
Observação: se você receber um erro de permissão negada, aguarde alguns minutos até que todas as permissões necessárias sejam propagadas para o agente de serviço e tente novamente. Verifique se você tem 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) atribuídos às contas de serviço.
Clique em Verificar meu progresso para conferir o objetivo.
Verifique a função do Cloud Run
Tarefa 4: testar a infraestrutura
É necessário fazer upload de uma imagem JPG ou PNG para o bucket.
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.
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).
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
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 10 de setembro de 2024
Laboratório testado em 10 de setembro de 2024
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.
Labs create a Google Cloud project and resources for a fixed time
Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
On the top left of your screen, click Start lab to begin
Use private browsing
Copy the provided Username and Password for the lab
Click Open console in private mode
Sign in to the Console
Sign in using your lab credentials. Using other credentials might cause errors or incur charges.
Accept the terms, and skip the recovery resource page
Don't click End lab unless you've finished the lab or want to restart it, as it will clear your work and remove the project
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.
Neste laboratório com desafio, você vai colocar em prática o que aprendeu nos laboratórios do selo de habilidade "Executar tarefas básicas de infraestrutura no Google Cloud". Antes de começar, é preciso ter concluído os outros laboratórios da Quest.
Duração:
Configuração: 0 minutos
·
Tempo de acesso: 60 minutos
·
Tempo para conclusão: 60 minutos