arrow_back

Realiza tareas básicas de infraestructura en Google Cloud: Lab de desafío

Unirse Acceder
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Realiza tareas básicas de infraestructura en Google Cloud: Lab de desafío

Lab 1 hora universal_currency_alt 1 crédito show_chart Introductorio
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP315

Labs de autoaprendizaje de Google Cloud

Introducción

En un lab de desafío, se le proporcionarán una situación y un conjunto de tareas. En lugar de seguir instrucciones paso a paso, deberá utilizar las habilidades aprendidas en los labs de la Quest a fin de decidir cómo completar las tareas por su cuenta. Un sistema de puntuación automatizado (que se muestra en esta página) le proporcionará comentarios acerca de si completó las tareas correctamente.

En un lab de desafío, no se explican conceptos nuevos de Google Cloud, sino que se espera que amplíe las habilidades que adquirió, como cambiar los valores predeterminados y leer o investigar los mensajes de error para corregir sus propios errores.

Debe completar correctamente todas las tareas dentro del período establecido para obtener una puntuación del 100%.

Se recomienda este lab para los alumnos inscritos en la Quest Perform Foundational Infrastructure Tasks in Google Cloud de Google Cloud Skills Boost. ¿Todo listo para el desafío?

Configuración

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
Nota: Usa una ventana de navegador privada o de Incógnito para ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Situación del desafío

Recién comienzas a desempeñarte en tu rol como ingeniero júnior de servicios de nube para Jooli Inc. Hasta ahora, estuviste ayudando a los equipos a crear y administrar recursos de Google Cloud.

Se espera que tengas las habilidades y el conocimiento para realizar estas tareas, por lo que no recibirás guías paso a paso.

Tu desafío

Se te solicitó ayudar a un equipo de desarrollo recién formado con el trabajo inicial de un nuevo proyecto, llamado Recuerdos, el cual consiste en almacenar y organizar fotos. Se te pidió que ayudes al equipo de Recuerdos con la configuración inicial del entorno de desarrollo de la aplicación. Recibes una solicitud en la que se te indica que debes completar las siguientes tareas:

  • Crear un bucket para almacenar fotos
  • Crear un tema de Pub/Sub para que lo utilice la Cloud Function que generes
  • Crear una Cloud Function
  • Quitar el acceso del ingeniero anterior de servicios de nube para que ya no pueda ingresar al proyecto Recuerdos

Estas son algunas pautas de Jooli Inc. que debes seguir:

  • Crea todos los recursos en la región y en la zona , a menos que se indique lo contrario.
  • Usa las VPC del proyecto.
  • Normalmente, la asignación de nombres se realiza de la siguiente manera: equipo-recurso; p. ej., una instancia podría llamarse kraken-webserver1
  • Asigna tamaños de recursos rentables. Ten cuidado porque los proyectos se supervisan y el uso excesivo de recursos dará como resultado la finalización del proyecto que los contiene, es decir, posiblemente el tuyo. Esta es la orientación que el equipo de supervisión está dispuesto a compartir; a menos que se indique lo contrario, utiliza e2-micro para VMs pequeñas de Linux y e2-medium para Windows o alguna otra aplicación, como nodos de Kubernetes.

A continuación, se describe cada tarea en detalle. ¡Buena suerte!

Tarea 1: Crea un bucket

Debes crear un bucket llamado para almacenar las fotos. Asegúrate de que el recurso esté creado en la región y en la zona .

Haz clic en Revisar mi progreso para verificar el objetivo. Crear un bucket llamado

Tarea 2: Crea un tema de Pub/Sub

Crea un tema de Pub/Sub llamado para que la Cloud Function envíe mensajes.

Haz clic en Revisar mi progreso para verificar el objetivo. Crear un tema de Pub/Sub llamado

Tarea 3: Crea la Cloud Function de la miniatura

Crea una Cloud Function que creará una miniatura a partir de una imagen agregada al bucket . Asegúrate de que la Cloud Function esté usando el entorno de 2ª generación. Asegúrate de que el recurso esté creado en la región y en la zona .

  1. Crea una Cloud Function llamada
Nota: La Cloud Function se debe ejecutar cada vez que se cree un objeto en el bucket que creaste en la tarea 1. Durante el proceso, la Cloud Function puede solicitarte permiso para habilitar APIs. Habilita cada API solicitada.
  1. Asegúrate de configurar el punto de entrada (función que se ejecutará) como y el activador como Cloud Storage.

  2. Agrega el siguiente código 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. Agrega el siguiente código 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" } }

Verifica que la miniatura se haya creado correctamente.

Haz clic en Revisar mi progreso para verificar el objetivo. Verificar la Cloud Function

Tarea 4: Prueba la infraestructura

Debes subir una imagen en formato JPG o PNG al bucket

  1. Sube una imagen en formato PNG o JPG al bucket .
Nota: De manera alternativa, descarga esta imagen https://storage.googleapis.com/cloud-training/gsp315/map.jpg en tu máquina y súbela al bucket.
  1. Al cabo de unos instantes, aparecerá una imagen de miniatura (selecciona ACTUALIZAR en los detalles del bucket).

Tarea 5: Quita al ingeniero anterior de servicios de nube

Verás que hay dos usuarios definidos en el proyecto:

  • Uno que corresponde a tu cuenta (, con el rol Propietario)
  • Otro que corresponde al ingeniero de servicios de nube anterior (, con el rol Visualizador).
  1. Quita el acceso del ingeniero anterior de servicios de nube para que ya no pueda ingresar al proyecto.

Haz clic en Revisar mi progreso para verificar el objetivo. Quitar al ingeniero anterior de servicios de nube

¡Felicitaciones!

Insignia de habilidad de Perform Foundational Infrastructure Tasks in Google Cloud

Obtén tu próxima insignia de habilidad

Este lab de autoaprendizaje es parte de la Quest para obtener la insignia de habilidad Perform Foundational Infrastructure Tasks in Google Cloud. Si completas esta Quest, obtendrás la insignia de habilidad que se muestra arriba como reconocimiento de tu logro. Comparte la insignia en tu currículum y tus plataformas de redes sociales, y anuncia tu logro con el hashtag #GoogleCloudBadge.

Esta Quest de habilidad es parte de las rutas de aprendizaje Perform Foundational Infrastructure Tasks in Google Cloud y Cloud Architect. Si ya completaste las otras Quests con insignia de habilidad en tu ruta de aprendizaje, revisa el catálogo de Google Cloud Skills Boost y encuentra más de 20 Quests con insignia de habilidad en las que puedes inscribirte.

Capacitación y certificación de Google Cloud

Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.

Actualización más reciente del manual: 19 de septiembre de 2023

Prueba más reciente del lab: 19 de septiembre de 2023

Copyright 2024 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.