ARC109

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 tu rol como analista júnior de datos. Hasta ahora, estuviste ayudando a los equipos a crear, administrar y acceder a recursos de datos de backend.
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 que consiste en exponer servicios de backend como APIs. Se te pidió que utilices API Gateway para ayudar al equipo en sus esfuerzos, y recibes una solicitud para completar las siguientes tareas:
- Desarrollar el sistema de backend con una Cloud Run Function
- Implementar y administrar una API exponiendo el servicio de backend con una puerta de enlace completamente administrada
- Suscribirse a mensajes publicados en un tema de Pub/Sub para reaccionar a eventos
A continuación, se describe cada tarea. ¡Buena suerte!
Tarea 1: Crea una Cloud Run Function
Nota: Las funciones de Cloud Run (2ª gen.) dependen de las APIs de Cloud Run Admin. Las APIs de Cloud Run Admin se habilitaron para ti al inicio de este lab. Sin embargo, la propagación de todos los servicios habilitados puede tardar unos minutos. Si tienes un problema cuando implementas tu Cloud Run Function, espera unos minutos y vuelve a intentarlo.
Crea una nueva Cloud Run Function (2ª gen.
) llamada gcfunction
en la región con Node.js 22
y permite invocaciones sin autenticar. Por ahora, haz que la función muestre "Hello World!" cuando se la invoca.
Haz clic en Revisar mi progreso para verificar el objetivo.
Crear una Cloud Run Function
Tarea 2: Crea una API Gateway
Una vez que se implemente la Cloud Run Function, configura un API Gateway para enviar solicitudes de proxy al backend.
Crea un archivo llamado openapispec.yaml
(con el código que se proporciona a continuación), que hace referencia a la Cloud Run Function que se implementó en la tarea 1.
Usa openapispec.yaml
cuando implementes API Gateway con las siguientes propiedades:
Nombre |
Valor |
Nombre visible |
API de gcfunction (donde se solicite) |
ID de API |
gcfunction-api |
Seleccionar una cuenta de servicio |
Cuenta de servicio predeterminada de Compute Engine |
Ubicación |
|
Nombre de la configuración |
gcfunction-api |
swagger: '2.0'
info:
title: gcfunction API
description: Sample API on API Gateway with a Google Cloud Run functions backend
version: 1.0.0
schemes:
- https
produces:
- application/json
x-google-backend:
address: https://gcfunction-{{{ project_0.startup_script.project_number | PROJECT_NUMBER }}}.{{{project_0.default_region | REGION}}}.run.app
paths:
/gcfunction:
get:
summary: gcfunction
operationId: gcfunction
responses:
'200':
description: A successful response
schema:
type: string
Nota: La operación de creación de la puerta de enlace tardará varios minutos (alrededor de 10 minutos) en completarse. Para verificar el estado del proceso de creación y de implementación, puedes hacer clic en el ícono de Notificaciones (ícono de campana) que se encuentra en la barra de navegación principal superior para mostrar una notificación de estado. Asegúrate de que el estado del ícono de Creando la puerta de enlace "API de gcfunction" tenga una marca de verificación verde antes de continuar.
Haz clic en Revisar mi progreso para verificar el objetivo.
Crea run API Gateway
Tarea 3: Crea un tema de Pub/Sub y publica mensajes a través de un backend de API
El equipo de desarrollo quiere que el backend de la API publique mensajes en un nuevo tema de Pub/Sub llamado demo-topic
.
Crea un nuevo tema de Pub/Sub (demo-topic
) y envía mensajes a él en la Cloud Run Function implementada anteriormente. Asegúrate de mantener habilitada la opción para crear una suscripción predeterminada cuando crees el tema.
Usa el fragmento de código que aparece a continuación para actualizar el archivo package.json
y el código index.js
en la Cloud Run Function que se implementó en la tarea 1.
package.json
{
"dependencies": {
"@google-cloud/functions-framework": "^3.0.0",
"@google-cloud/pubsub": "^3.4.1"
}
}
index.js
/**
* Responds to any HTTP request.
*
* @param {!express:Request} req HTTP request context.
* @param {!express:Response} res HTTP response context.
*/
const {PubSub} = require('@google-cloud/pubsub');
const pubsub = new PubSub();
const topic = pubsub.topic('demo-topic');
const functions = require('@google-cloud/functions-framework');
exports.helloHttp = functions.http('helloHttp', (req, res) => {
// Send a message to the topic
topic.publishMessage({data: Buffer.from('Hello from Cloud Run functions!')});
res.status(200).send("Message sent to Topic demo-topic!");
});
Vuelve a implementar la Cloud Run Function una vez que se hayan actualizado los archivos index.js
y package.json
.
Luego, invoca la Cloud Run Function mediante API Gateway. Si lo haces correctamente, se publicará un mensaje en el tema demo-topic
que creaste en esta tarea.
Nota: Los mensajes publicados tardarán varios minutos (alrededor de 5) en aparecer en la sección Mensajes de la suscripción después de invocar el extremo de API Gateway.
Haz clic en Revisar mi progreso para verificar el objetivo.
Crear un tema de Pub/Sub y publicar mensajes a través de un backend de API
¡Felicitaciones!
Completaste el desafío de implementar y administrar una API exponiendo el servicio de backend con una puerta de enlace completamente administrada.
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: 1 de abril de 2025
Prueba más reciente del lab: 1 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.