Hace doce años, Lily fundó la cadena de clínicas veterinarias Pet Theory.
Actualmente les envían a los clientes las facturas en formato DOCX, pero muchos se quejaron de que no pueden abrir los archivos.
Para mejorar la satisfacción de los clientes, Lily le pidió a Patrick, que trabaja en TI, que busque una alternativa para mejorar la situación actual.
En el equipo de operaciones de Pet Theory, trabaja una sola persona, por lo que desean invertir en una solución rentable que no requiera mucho mantenimiento continuo. Después de analizar las distintas opciones de procesamiento, Patrick decide usar Cloud Run.
Cloud Run es una plataforma sin servidores: elimina la complejidad que supone la administración de infraestructura, de manera que puedas enfocarte en compilar tu aplicación en lugar de preocuparte por la sobrecarga. Como producto de Google sin servidores, puede escalar a cero, así que no generará costos cuando no se utilice. También te permite usar paquetes binarios personalizados basados en contenedores, lo cual significa que ahora es posible compilar artefactos aislados coherentes.
En este lab, compilarás una app web de conversión de PDF en Cloud Run que convierta automáticamente los archivos almacenados en Cloud Storage en PDF almacenados en carpetas separadas.
Arquitectura
En este diagrama, se muestra una descripción general de los servicios que usarás y la manera en que se conectan entre sí:
Objetivos
En este lab, aprenderás a hacer lo siguiente:
Convertir una aplicación de Node.js en un contenedor
Compilar contenedores con Google Cloud Build
Crear un servicio de Cloud Run que convierta archivos en archivos PDF en la nube
Utilizar el procesamiento de eventos con Cloud Storage
Requisitos previos
Este lab es de nivel intermedio, lo que supone que el usuario tiene conocimientos previos sobre los entornos de shell y la consola. Será útil tener experiencia en Firebase, pero no es obligatorio. Se recomienda que, antes de realizar este lab, hayas completado los siguientes labs de Google Cloud Skills Boost:
Cuando esté todo listo, desplázate hacia abajo y sigue los pasos que se muestran a continuación para configurar el entorno de tu lab.
Configuración y requisitos
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.
Cómo iniciar tu lab y acceder a la consola de Google Cloud
Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá un diálogo para que selecciones la forma de pago.
A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:
El botón para abrir la consola de Google Cloud
El tiempo restante
Las credenciales temporales que debes usar para el lab
Otra información para completar el lab, si es necesaria
Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).
El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.
Sugerencia: Ordena las pestañas en ventanas separadas, una junto a la otra.
Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.
{{{user_0.username | "Username"}}}
También puedes encontrar el nombre de usuario en el panel Detalles del lab.
Haz clic en Siguiente.
Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.
{{{user_0.password | "Password"}}}
También puedes encontrar la contraseña en el panel Detalles del lab.
Haz clic en Siguiente.
Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud.
Nota: Usar tu propia cuenta de Google Cloud para este lab podría generar cargos adicionales.
Haz clic para avanzar por las páginas siguientes:
Acepta los Términos y Condiciones.
No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
No te registres para obtener pruebas gratuitas.
Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.
Nota: Para acceder a los productos y servicios de Google Cloud, haz clic en el menú de navegación o escribe el nombre del servicio o producto en el campo Buscar.
Activa Cloud Shell
Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.
Haz clic en Activar Cloud Shell en la parte superior de la consola de Google Cloud.
Haz clic para avanzar por las siguientes ventanas:
Continúa en la ventana de información de Cloud Shell.
Autoriza a Cloud Shell para que use tus credenciales para realizar llamadas a la API de Google Cloud.
Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu Project_ID, . El resultado contiene una línea que declara el Project_ID para esta sesión:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.
Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
Haz clic en Autorizar.
Resultado:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project
Resultado:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Nota: Para obtener toda la documentación de gcloud, en Google Cloud, consulta la guía con la descripción general de gcloud CLI.
Tarea 1. Información sobre la tarea
Pet Theory desea convertir sus facturas en archivos PDF para que los clientes puedan abrirlos de manera confiable. El equipo quiere que esta conversión se realice automáticamente para minimizar la carga de trabajo para Lisa, la gerente de oficina.
Ruby, la asesora informática de Pet Theory, recibe un mensaje de Patrick, de TI…
Patrick, administrador de TI
Hola, Ruby:
Estuve investigando y descubrí que LibreOffice puede convertir muchos formatos de archivo diferentes en PDF.
¿Sería posible ejecutar LibreOffice en la nube sin tener que mantener los servidores?
Patrick
Ruby, asesora de software
Hola, Patrick:
Creo que tengo el producto ideal para este tipo de situación.
Acabo de ver un excelente video de Next '19 sobre Cloud Run en YouTube. Parece que podemos ejecutar LibreOffice en un entorno sin servidores mediante Cloud Run. ¡No hará falta mantener los servidores!
Te enviaré algunos recursos que te ayudarán a dar los primeros pasos.
Ruby
Ayuda a Patrick a configurar e implementar Cloud Run.
Tarea 2. Habilita la API de Cloud Run
Abre el menú de navegación () y haz clic en APIs y servicios > Biblioteca. En la barra de búsqueda, escribe “Cloud Run” y selecciona la API de Cloud Run Admin en la lista de resultados.
Haz clic en Habilitar y, luego, en el botón Atrás de tu navegador dos veces. Ahora, la consola debería verse de la siguiente manera:
Tarea 3. Implementa un servicio simple de Cloud Run
Ruby desarrolló un prototipo de Cloud Run y quiere que Patrick lo implemente en Google Cloud. Ahora, ayuda a Patrick a establecer el servicio de PDF de Cloud Run para Pet Theory.
Abre una nueva sesión de Cloud Shell y ejecuta el siguiente comando para clonar el repositorio de Pet Theory:
Luego, cambia tu directorio de trabajo actual a lab03:
cd pet-theory/lab03
Edita package.json con el editor de código de Cloud Shell o tu editor de texto preferido. En la sección “scripts”, agrega "start": "node index.js", como se muestra a continuación:
...
"scripts": {
"start": "node index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
...
Ahora, ejecuta los siguientes comandos en Cloud Shell para instalar los paquetes que usará tu secuencia de comandos de conversión:
Abre el archivo lab03/index.js y revisa el código.
Se implementará la aplicación como un servicio de Cloud Run que acepta solicitudes HTTP POST.
Si la solicitud POST es una notificación de Pub/Sub acerca de un archivo subido, el
servicio escribirá los detalles del archivo en el registro. En caso contrario, devolverá la cadena “OK”.
Revisa el archivo llamado lab03/Dockerfile.
Se denomina manifiesto y contiene una receta para que el comando
de Docker compile una imagen. Cada línea comienza con un comando que le indica
a Docker cómo procesar la siguiente información:
La primera lista indica que la imagen base debería usar Node.js como plantilla para que se cree la imagen.
La última línea indica el comando que se ejecutará, que, en este caso, se refiere a “npm start”.
Para compilar e implementar la API de REST, usa Google Cloud Build. Ejecuta este comando para iniciar el proceso de compilación:
Cuando la implementación esté completa, verás un mensaje como este:
Service [pdf-converter] revision [pdf-converter-00001] has been deployed and is serving 100 percent of traffic at https://pdf-converter-[hash].a.run.app
Crea la variable de entorno $SERVICE_URL para la app de manera que puedas acceder a ella con facilidad:
SERVICE_URL=$(gcloud beta run services describe pdf-converter --platform managed --region {{{ project_0.default_region | Lab Region }}} --format="value(status.url)")
echo $SERVICE_URL
Prueba la tarea completada
Haz clic en Revisar mi progreso para verificar la realización de la tarea indicada arriba.
Crear una revisión para Cloud Run
Realiza una solicitud POST anónima a tu servicio nuevo:
curl -X POST $SERVICE_URL
NOTA:
Se mostrará un mensaje de error que dirá “Your client does not have permission to get the URL”. Este es el comportamiento esperado: no queremos que usuarios anónimos puedan llamar al servicio.
Ahora intenta invocar al servicio como usuario autorizado:
curl -X POST -H "Authorization: Bearer $(gcloud auth print-identity-token)" $SERVICE_URL
Si recibes la respuesta "OK", significa que implementaste correctamente un servicio de Cloud Run. ¡Bien hecho!
Tarea 4. Activa tu servicio de Cloud Run cuando se suba un archivo nuevo
Ahora que se implementó correctamente el servicio de Cloud Run, Ruby desea que Patrick cree un área de etapa de pruebas para convertir los datos. El bucket de Cloud Storage usará un activador de eventos para notificar a la aplicación cuando se suba y se deba procesar un archivo nuevo.
Ejecuta el siguiente comando para crear un bucket en Cloud Storage para los documentos subidos:
gsutil mb gs://$GOOGLE_CLOUD_PROJECT-upload
Agrega otro bucket para los archivos PDF procesados:
gsutil mb gs://$GOOGLE_CLOUD_PROJECT-processed
Ahora, regresa a tu pestaña de la consola de Cloud, abre el menú de navegación y selecciona Cloud Storage. Verifica que se hayan creado los buckets (también habrá otros buckets que utiliza la plataforma).
Prueba la tarea completada
Haz clic en Revisar mi progreso para verificar la realización de la tarea indicada arriba.
Crear dos depósitos de Cloud Storage
En Cloud Shell, ejecuta el siguiente comando para indicarle a Cloud Storage que envíe una notificación de Pub/Sub cada vez que se haya terminado de subir un archivo nuevo al bucket de documentos:
Haz clic en Revisar mi progreso para verificar la realización de la tarea indicada arriba.
Crear una suscripción a Pub/Sub
Tarea 5. Comprueba si se activa el servicio de Cloud Run cuando se suben archivos a Cloud Storage
Para verificar que la aplicación funcione como se espera, Ruby le pide a Patrick que suba algunos datos de prueba al bucket de almacenamiento con nombre y que revise Cloud Logging.
Copia algunos archivos de prueba en tu bucket de carga:
Cuando la carga finalice, regresa a la pestaña de la consola de Cloud, abre el menú de navegación y selecciona Logging en la sección Operaciones.
En el menú desplegable Recurso, filtra tus resultados para Revisión de Cloud Run y haz clic en Aplicar. Luego, haz clic en Ejecutar consulta.
En Resultados de la consulta, busca una entrada de registro que comience con file: y haz clic en ella. Verás un volcado de los datos del archivo que Pub/Sub envía a tu servicio de Cloud Run cuando se sube un archivo nuevo.
¿Puedes encontrar el nombre del archivo que subiste en este objeto?
Nota:
Si no ves ninguna entrada de registro que comience con “file”, prueba hacer clic en el botón “Cargar registros más recientes” que está cerca de la parte inferior de la página.
Ahora, regresa a la pestaña del editor de código y ejecuta el siguiente comando en Cloud Shell para borrar los archivos de tu directorio upload para limpiarlo:
gsutil -m rm gs://$GOOGLE_CLOUD_PROJECT-upload/*
Tarea 6: Contenedores
Patrick necesita convertir en PDF un conjunto de facturas pendientes para que todos los clientes puedan abrirlas. Le envía un correo electrónico a Ruby para pedirle ayuda…
Patrick, administrador de TI
Hola, Ruby:
Según lo que encontraste, creo que podemos automatizar este proceso y pasar a usar PDF como formato para todas las facturas.
Ayer me dediqué a programar una solución y compilé una secuencia de comandos de Node.js que hará lo que necesitamos. ¿Podrías revisarlo?
Patrick
Patrick le envía a Ruby el fragmento de código que escribió para producir un PDF a partir de un archivo:
Cloud Run usa contenedores, así que debemos darle este formato a tu aplicación. En el siguiente paso, tenemos que crear un manifiesto de Dockerfile para la aplicación.
Tu código usa LibreOffice. ¿Podrías enviarme el comando para instalar ese software? Tendré que incluirlo en el contenedor.
Ruby
Patrick, administrador de TI
Hola, Ruby:
Perfecto. Este es el comando con el que suelo instalar LibreOffice en los servidores de la oficina:
Para compilar el contenedor, se deberán integrar varios componentes:
Actualiza el manifiesto.
Una vez identificados todos los archivos, se puede crear el manifiesto. Ayuda a Ruby a configurar e implementar el contenedor.
El paquete para LibreOffice no se incluyó en el contenedor, así que habrá que agregarlo.
Patrick había proporcionado los comandos que usa para compilar su aplicación. Ruby los agregará como un comando RUN dentro del Dockerfile.
Abre el manifiesto de Dockerfile y agrega la línea del comando RUN apt-get update -y && apt-get install -y libreoffice && apt-get clean como se muestra a continuación:
Cada vez que se suba un archivo, este servicio se activará y realizará estas tareas (cada una corresponde a una línea de arriba):
Extraerá los detalles del archivo de la notificación de Pub/Sub.
Descargará el archivo de Cloud Storage en el disco duro local. En realidad, este disco no es físico, sino una sección de memoria virtual que se comporta como un disco.
Convertirá el archivo descargado en PDF.
Subirá el archivo PDF a Cloud Storage. La variable de entorno process.env.PDF_BUCKET contiene el nombre del bucket de Cloud Storage en el cual se escribirán los archivos PDF. Le asignarás un valor a esta variable cuando implementes el servicio a continuación.
Borrará el archivo original de Cloud Storage.
El resto del archivo index.js implementa las funciones a las que llama este código de nivel superior.
Es momento de implementar el servicio y de establecer la variable de entorno PDF_BUCKET. También es una buena idea asignarle a LibreOffice 2 GB de RAM para trabajar (observa la línea que tiene la opción --memory).
Ejecuta el siguiente comando para compilar el contenedor:
Como el contenedor tiene la parte de LibreOffice, esta compilación tardará más que la anterior. Es un buen momento para levantarse y estirar las piernas durante unos minutos.
Haz clic en Revisar mi progreso para verificar el objetivo.
Crear una revisión nueva
Tarea 7. Prueba el servicio pdf-conversion
Cuando finalicen los comandos de implementación, ejecuta lo siguiente para asegurarte de que el servicio se haya implementado de forma correcta:
curl -X POST -H "Authorization: Bearer $(gcloud auth print-identity-token)" $SERVICE_URL
Si recibes la respuesta "OK", significa que implementaste correctamente el servicio actualizado de Cloud Run. LibreOffice puede convertir en PDF muchos tipos de archivo: DOCX, XLSX, JPG, PNG, GIF, etcétera.
Ejecuta el siguiente comando para subir algunos archivos de ejemplo:
Regresa a la consola de Cloud, abre el menú de navegación y selecciona Cloud Storage. Abre el bucket -upload y haz clic en el botón Actualizar algunas veces. Verás cómo se borran los archivos de a uno a medida que se convierten en PDF.
En el menú de la izquierda, haz clic en Buckets y, luego, en el bucket cuyo nombre termina con “-processed”. Debería contener las versiones en PDF de todos los archivos. Si lo deseas, puedes abrir los archivos PDF para asegurarte de que se hayan convertido correctamente:
Nota: Vuelve a ejecutar el comando si no ves todos los archivos PDF convertidos en el bucket -processed.
¡Felicitaciones!
Ahora Pet Theory tiene un sistema para convertir sus archivos antiguos en PDF.
Con solo subir los archivos antiguos al bucket “upload”, el servicio pdf-converter los convierte en PDF y los escribe con ese formato en el bucket “processed”.
Sigue el recorrido sin servidores en el curso Serverless Cloud Run Development.
Leerás el caso de una empresa ficticia y ayudarás a los personajes a llevar a cabo su plan de migración sin servidores.
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: 28 de mayo de 2024
Prueba más reciente del lab: 28 de mayo de 2024
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.
Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
.
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.
En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar
Usa la navegación privada
Copia el nombre de usuario y la contraseña proporcionados para el lab
Haz clic en Abrir la consola en modo privado
Accede a la consola
Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
Acepta las condiciones y omite la página de recursos de recuperación
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.
En este lab, usarás Cloud Run, un servicio sin servidores, para compilar una aplicación web que convierte automáticamente archivos almacenados en Cloud Storage en archivos PDF almacenados en carpetas separadas.
Duración:
0 min de configuración
·
Acceso por 60 min
·
60 min para completar