Obtén acceso a más de 700 labs y cursos

Almacena, procesa y administra datos en Google Cloud: Lab de desafío

Lab 45 minutos universal_currency_alt 1 crédito show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Obtén acceso a más de 700 labs y cursos

ARC100

Logotipo de los labs de autoaprendizaje de Google Cloud

Descripción general

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ás utilizar las habilidades aprendidas en los labs del curso para decidir cómo completar las tareas por tu cuenta. Un sistema automatizado de puntuación (en esta página) mostrará comentarios y determinará si completaste tus tareas correctamente.

En un lab de desafío, no se explican conceptos nuevos de Google Cloud, sino que se espera que amplíes las habilidades que adquiriste, 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%.

Configuración

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs cuentan con un temporizador que no se puede pausar. El temporizador, 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 del navegador privada o de incógnito (opción recomendada) para ejecutar el lab. Así evitarás conflictos 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: Usa solo la cuenta de estudiante para este lab. Si usas otra cuenta de Google Cloud, es posible que se apliquen cargos a esa cuenta.

Situación del desafío

Recién comienzas a desempeñarte en un puesto de ingeniería de la nube (nivel junior). Hasta ahora, estuviste ayudando a los equipos a crear y administrar recursos de Google Cloud.

Se espera que tengas las habilidades y el conocimiento necesarios para realizar estas tareas.

Tu desafío

Se te solicitó ayudar a un equipo de desarrollo recién formado a abordar el trabajo inicial de un nuevo proyecto llamado Recuerdos, que 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 función de Cloud Run que generes
  • Crear una función de Cloud Run

Estos son algunos estándares que debes seguir:

  • Crea todos los recursos en la región , 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 f1-micro para VMs pequeñas de Linux y n1-standard-1 para Windows o demás aplicaciones, como los nodos de Kubernetes.

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

Tarea 1: Crea un bucket

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

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 función de Cloud Run envíe mensajes.

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

Tarea 3: Crea la función de Cloud Run de la miniatura

Crea una función de Cloud Run que creará una miniatura a partir de una imagen agregada al bucket .

Asegúrate de que la función de Cloud Run use el entorno Cloud Run Functions (que es de 2ª generación). Asegúrate de que el recurso esté creado en la región y en la zona .

  1. Crea una función de Cloud Run (2ª generación) llamada con Node.js 22 y configura el activador como Cloud Storage.
Nota: La función de Cloud Run se debe ejecutar cada vez que se cree un objeto en el bucket que creaste en la tarea 1. Durante el proceso, la función de Cloud Run puede solicitarte permiso para habilitar APIs o asignar roles a las cuentas de servicio. Habilita cada una de las APIs requeridas y asigna los roles solicitados.

Después de otorgar los permisos, espera unos minutos antes de hacer clic y crear la función para asegurarte de que los permisos se hayan actualizado.
Cuando se usa la consola para crear la función, ten en cuenta lo siguiente: Después de iniciar la creación de la función, espera hasta que se otorgue la marca de verificación verde a Creando activador de Eventarc (en la parte superior de la página, en Creando servicio) antes de actualizar el código en el siguiente paso. Si no esperas a que aparezca la casilla de verificación verde para Creando activador de Eventarc, es posible que el activador no se cree correctamente y no aparezca en la pestaña Activadores de la función.
  1. Asegúrate de configurar el punto de entrada (función que se ejecutará) como .

  2. Agrega el siguiente código 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) { // no tiene una miniatura, obtener extensión de archivo de nombre 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); // corregir subcadena para quitar el punto if (filename_ext === 'png' || filename_ext === 'jpg' || filename_ext === 'jpeg') { // solo admite png and jpg en este punto 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. 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": "^6.11.0", "sharp": "^0.32.1" }, "devDependencies": {}, "engines": { "node": ">=4.3.2" } } Nota: Si recibes un error de permiso denegado que indica que pueden tardar unos minutos en propagarse todos los permisos necesarios al agente de servicio, espera unos minutos y vuelve a intentarlo. Asegúrate de tener los roles apropiados (Agente de servicio de Eventarc, Receptor de eventos de Eventarc, Creador de tokens de cuenta de servicio y Publicador de Pub/Sub) asignados a las cuentas de servicio correctas.

Tarea 4: Prueba la infraestructura

Para probar la función, sube una imagen en formato JPG o PNG al bucket.

  1. Sube una imagen en formato PNG o JPG al bucket .
Nota: Debes subir una imagen en formato JPG o PNG al bucket para verificar que la miniatura se haya creado (después de crear la función correctamente). Usa cualquier imagen JPG o PNG, o bien esta https://storage.googleapis.com/cloud-training/arc101/travel.jpg, que debes descargar en tu máquina para luego subirla al bucket.
  1. Al cabo de unos instantes, aparecerá una imagen de miniatura (selecciona ACTUALIZAR en los detalles del bucket).

Después de subir el archivo de imagen, puedes hacer clic para verificar tu progreso a continuación. No es necesario que esperes a que se cree la imagen de miniatura.

Nota: Si la función se implementó correctamente y no ves la imagen en miniatura en el bucket, puedes verificar que la pestaña Activadores muestre la información del activador que proporcionaste anteriormente para la función, que podría no haberse guardado de forma correcta si antes encontraste errores.

Si no ves el activador de Cloud Storage en la pestaña Activadores de la función, puedes volver a crearlo (consulta la página de documentación sobre cómo crear un activador para servicios) y, luego, subir un archivo nuevo para volver a realizar la prueba (actualiza la página después de agregar un archivo nuevo).

Haz clic en Revisar mi progreso para verificar el objetivo. Verificar que la función de Cloud Run haya creado la miniatura correctamente

¡Felicitaciones!

¡Felicitaciones! En este lab, creaste correctamente un bucket, un tema de Pub/Sub y una función de Cloud Run que crea una miniatura a partir de una imagen agregada al bucket.

Insignia de Almacena, procesa y administra datos en Google Cloud

Obtén tu próxima insignia de habilidad

Este lab de autoaprendizaje forma parte del curso Almacena, procesa y administra datos en Google Cloud: consola. Si completas este curso, obtendrás la insignia que se muestra arriba como reconocimiento de tu logro. Comparte la insignia en tu currículum y tus plataformas sociales, y anuncia tu logro con el hashtag #GoogleCloudBadge.

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.

Última actualización del manual: 4 de abril de 2025

Prueba más reciente del lab: 4 de abril de 2025

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

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usa una ventana de navegación privada o de Incógnito para ejecutar el 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.