Instrucciones y requisitos de configuración del lab
Protege tu cuenta y tu progreso. Usa siempre una ventana de navegador privada y las credenciales del lab para ejecutarlo.

Almacena, procesa y administra datos en Google Cloud: línea de comandos (lab de desafío)

Lab 15 minutos universal_currency_alt 1 crédito show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Este contenido aún no está optimizado para dispositivos móviles.
Para obtener la mejor experiencia, visítanos en una computadora de escritorio con un vínculo que te enviaremos por correo electrónico.

ARC102

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

Contexto del lab

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 júnior). 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 con el trabajo inicial de un nuevo proyecto llamado Naturaleza salvaje, que consiste en almacenar y organizar fotos para organizaciones de vida silvestre. Se te pidió que ayudes al equipo de Naturaleza salvaje 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:

  • Usar comandos para crear un bucket en el que se almacenarán las fotografías
  • Usar comandos para crear un tema de Pub/Sub que utilizará una Cloud Function que crees
  • Usar comandos para crear una Cloud Function

Estos son algunos estándares que debes seguir:

  • Crea todos los recursos 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

  • Usa comandos (CLI/SDK) para crear un bucket llamado para almacenar las fotos.

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

Tarea 2: Crea un tema de Pub/Sub

  • Usa la línea de comandos para crear 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 miniaturas

  1. Usa la línea de comandos para crear una Cloud Function llamada que se ejecute cada vez que se agregue un objeto al bucket configurado en la tarea 1.

  2. Asegúrate de configurar el punto de entrada (la Function que se ejecutará) como thumbnail y el activador como Cloud Storage.

  3. En la línea 15 de index.js, reemplaza el texto REPLACE_WITH_YOUR_TOPIC ID por el que creaste en la tarea 2.

index.js:

/* globals exports, require */ //jshint strict: false //jshint esversion: 6 "use strict"; 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"); exports.thumbnail = (event, context) => { const fileName = event.name; const bucketName = event.bucket; const size = "64x64" const bucket = gcs.bucket(bucketName); const topicName = "REPLACE_WITH_YOUR_TOPIC ID"; 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`); } };

package.json:

{ "name": "thumbnails", "version": "1.0.0", "description": "Create Thumbnail of uploaded image", "scripts": { "start": "node index.js" }, "dependencies": { "@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" } } Nota: Debes subir una imagen JPG o PNG al bucket para verificar que se haya creado la miniatura (después de crear la función correctamente). Usa esta imagen https://storage.googleapis.com/cloud-training/arc102/wildlife.jpg. Descárgala en tu máquina y, luego, sube el archivo a tu bucket. Al cabo de unos instantes, aparecerá una imagen de miniatura (selecciona ACTUALIZAR en los detalles del bucket).

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

¡Felicitaciones!

Insignia Almacena, procesa y administra datos en Google Cloud: línea de comandos

Obtén tu próxima insignia de habilidad

Este lab de autoaprendizaje forma parte del curso para obtener la insignia de habilidad Almacena, procesa y administra datos en Google Cloud: línea de comandos. Si completas este curso, 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 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: 3 de junio de 2024

Prueba más reciente del lab: 3 de junio de 2024

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