1. Introducción
Última actualización: 21 de junio de 2023
Alertas sobre las verificaciones de tiempo de actividad para la disponibilidad
Las alertas sobre las verificaciones de tiempo de actividad te permiten identificar y resolver rápidamente los problemas que pueden afectar tus servicios. Si recibes alertas sobre las interrupciones, puedes tomar medidas para minimizar el impacto en tus usuarios y clientes.
Las verificaciones de tiempo de actividad se realizan en intervalos, el más corto de los cuales es de 60 segundos. También puede ser útil supervisar los códigos de error como eventos dinámicos a través de alertas basadas en registros como un indicador adicional de la falta de disponibilidad si necesitas un nivel de detalle superior a 60 segundos. Si se acepta un intervalo de 60 segundos o más, las verificaciones de tiempo de actividad son una forma sencilla de medir tu servicio con poca configuración adicional.
Si un servicio no está disponible, una verificación de tiempo de actividad detectará el problema incluso si no hay tráfico. Por otro lado, el tráfico puede verse afectado por factores como el mantenimiento, las actualizaciones y hasta factores externos al sistema, como el mal clima o eventos deportivos que distraen el uso.
Para obtener más información sobre cuándo usar las verificaciones de tiempo de actividad, consulta Garantiza el tiempo de actividad de tus recursos de Google Cloud.
Temas de Pub/Sub como canal de notificaciones de alertas
Se puede usar un tema de Pub/Sub como canal de notificaciones de Google Cloud Monitoring para enviar alertas a una suscripción de Pub/Sub. Esto te permite integrar tus alertas de Cloud Monitoring con otros sistemas, incluidos los servicios de notificación de terceros.
Para usar un tema de Pub/Sub como canal de notificaciones, primero debes crear un tema y una suscripción de Pub/Sub. Luego, debes crear un canal de notificaciones de Cloud Monitoring que use el tema de Pub/Sub como destino.
Cuando se active una alerta, Cloud Monitoring enviará un mensaje al tema de Pub/Sub. Luego, el suscriptor de la suscripción a Pub/Sub puede procesar el mensaje y tomar las medidas adecuadas.
Qué compilarás
En este codelab, implementarás una app, crearás un tema de Pub/Sub y crearás una alerta de verificación de tiempo de actividad para la app que usa el tema de Pub/Sub como canal de notificaciones.
Qué aprenderás
- Cómo crear un tema de Pub/Sub
- Cómo crear una alerta y una verificación de tiempo de actividad
Este codelab se enfoca en la creación de una alerta para una verificación de tiempo de actividad. Los conceptos y el código de la aplicación que no son relevantes se pasan por alto y se proporcionan para que simplemente los copies y pegues.
Requisitos
- Una cuenta de Google Cloud con permisos para realizar las siguientes acciones:
- Implementa aplicaciones de Cloud Run
- Crea temas de Pub/Sub
- Crear verificaciones de tiempo de actividad
- Crea alertas
2. Cómo prepararte
Selecciona o crea un proyecto de Google Cloud
Para seleccionar un proyecto existente, usa el menú desplegable:

Para crear un proyecto nuevo en Google Cloud, puedes seguir estos pasos:
- Ve a Google Cloud Platform Console.
- Haz clic en el botón Crear proyecto.
- Ingresa un nombre para tu proyecto.
- Selecciona una cuenta de facturación para tu proyecto.
- Haz clic en el botón Create (Crear).
Se creará tu proyecto y se te dirigirá al panel del proyecto. Desde allí, puedes comenzar a usar los servicios de Google Cloud.
A continuación, se incluyen algunos detalles adicionales sobre cada paso:
- Nombre: El nombre de tu proyecto debe ser único dentro de tu organización.
- Cuenta de facturación: Puedes usar una cuenta de facturación existente o crear una nueva.
- Crear: Una vez que hayas ingresado toda la información requerida, haz clic en el botón Crear para crear tu proyecto.
Para obtener más información, consulta la documentación de Google Cloud sobre la creación de proyectos.
3. Implementa la aplicación de API
¿De qué trata la aplicación o API de muestra?
Nuestra aplicación es una aplicación simple de la API de Inventory que expone un extremo de la API de REST con un par de operaciones para enumerar los elementos del inventario y obtener el recuento del inventario de un elemento específico.
Una vez que implementemos la API y suponiendo que se aloja en https://<somehost>, podemos acceder a los extremos de la API de la siguiente manera:
https://<somehost>/inventory
Se enumerarán todos los artículos del producto con los niveles de inventario disponibles.
https://<somehost>/inventory/{productid}
Esto proporcionará un solo registro con el productid y el nivel de inventario disponible para ese producto.
Los datos de respuesta devueltos están en formato JSON.
Nota: Esta aplicación de la API es solo para fines de demostración y no representa una implementación segura y sólida de la API. El objetivo es tener una aplicación disponible rápidamente para explorar el propósito clave del lab, es decir, las operaciones de Google Cloud.
Datos de ejemplo y solicitud/respuesta de la API
Para simplificar el proceso, la aplicación no se basa en una base de datos en el backend. Contiene 3 IDs de productos de muestra y sus niveles de inventario disponibles.
ID del producto | Nivel de inventario disponible |
I-1 | 10 |
I-2 | 20 |
I-3 | 30 |
A continuación, se muestran ejemplos de solicitudes y respuestas de la API:
Solicitud a la API | Respuesta de la API |
https://<somehost>/inventory | [ { "I-1": 10, "I-2": 20, "I-3": 30 }] |
https://<somehost>/inventory/I-1 | { "productid": "I-1", "qty": 10} |
https://<somehost>/inventory/I-2 | { "productid": "I-2", "qty": 20} |
https://<somehost>/inventory/I-200 | { "productid": I-200, "qty": -1} |
Clona el repositorio
Si bien Google Cloud y Spanner se pueden operar de manera remota desde tu laptop, en este codelab usarás Google Cloud Shell, un entorno de línea de comandos que se ejecuta en la nube.
En GCP Console, haga clic en el ícono de Cloud Shell en la barra de herramientas superior derecha:

El aprovisionamiento y la conexión al entorno deberían tomar solo unos minutos. Cuando termine el proceso, debería ver algo como lo siguiente:

Esta máquina virtual está cargada con todas las herramientas de desarrollo que necesitas. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud, lo que permite mejorar considerablemente el rendimiento de la red y la autenticación. Puedes realizar todo tu trabajo en este lab usando simplemente un navegador.
Configura gcloud
En Cloud Shell, establece tu ID del proyecto y guárdalo como la variable PROJECT_ID.
PROJECT_ID=[YOUR-PROJECT-ID]
gcloud config set project $PROJECT_ID
Ahora, ejecuta el siguiente comando:
$ git clone https://github.com/rominirani/cloud-code-sample-repository.git
Esto creará una carpeta llamada cloud-code-sample-repository en esta carpeta.
(Opcional) Ejecuta la aplicación en Cloud Shell
Para ejecutar la aplicación de forma local, sigue estos pasos:
- Desde la terminal, navega a la versión de Python de la API con el siguiente comando:
$ cd cloud-code-sample-repository
$ cd python-flask-api
- En la terminal, proporciona el siguiente comando (en el momento de la redacción, Cloud Shell incluye Python 3.9.x instalado y usaremos la versión predeterminada. Si planeas ejecutarlo de forma local en tu laptop, puedes usar Python 3.8 o una versión posterior:
$ python app.py
- Puedes ejecutar el siguiente comando para iniciar el servidor de Python de forma local.

Haz clic en Vista previa en el puerto 8080. 5. Se abrirá una ventana del navegador. Verás un error 404, pero no te preocupes. Modifica la URL para que solo tenga /inventory después del nombre de host.
Por ejemplo, en mi máquina, se ve de la siguiente manera:
https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory
Se mostrará la lista de elementos de inventario, como se explicó anteriormente:

- Ahora puedes detener el servidor. Para ello, ve a la terminal y presiona Ctrl + C.
Implemente la aplicación
Ahora implementaremos esta aplicación de API en Cloud Run. El proceso implicó el uso del cliente de línea de comandos de gcloud para ejecutar el comando que implementa el código en Cloud Run.
En la terminal, ejecuta el siguiente comando de gcloud:
$ gcloud run deploy --source .
Se te harán varias preguntas, y algunos de los puntos se mencionan a continuación:
- Nombre del servicio (python-flask-api): Puedes usar este valor predeterminado o elegir algo como my-inventory-api.
- API [run.googleapis.com] not enabled on project [613162942481]. Would you like to enable and retry (this will take a few minutes)? (y/N)? Y
- Especifica una región: Elige 31 (us-west-1)
- API [artifactregistry.googleapis.com] not enabled on project [613162942481]. Would you like to enable and retry (this will take a few minutes)? (y/N)? Y
- La implementación desde el código fuente requiere un repositorio de Docker de Artifact Registry para almacenar los contenedores compilados. Se creará un repositorio llamado [cloud-run-source-deploy] en la región [us-west1].
- Do you want to continue (Y/n)? Y
- Allow unauthenticated invocations to [my-inventory-api] (y/N)? Y
Finalmente, esto iniciará el proceso para tomar tu código fuente, alojarlo en un contenedor, enviarlo a Artifact Registry y, luego, implementar el servicio y la revisión de Cloud Run. Debes tener paciencia durante este proceso (puede tardar entre 3 y 4 minutos) y verás que se completa con la URL del servicio.
A continuación, se muestra un ejemplo de ejecución:

Prueba la aplicación
Ahora que implementamos la aplicación en Cloud Run, puedes acceder a ella de la siguiente manera:
- Toma nota de la URL del servicio del paso anterior. Por ejemplo, en mi configuración, se muestra como
https://my-inventory-api-bt2r5243dq-uw.a.run.app. Llamemos a este<SERVICE_URL>. - Abre un navegador y accede a las siguientes 3 URLs para los extremos de la API:
<SERVICE_URL>/inventory<SERVICE_URL>/inventory/I-1<SERVICE_URL>/inventory/I-100
Debe cumplir con las especificaciones que proporcionamos en una sección anterior con una solicitud y respuesta de API de muestra.
Obtén detalles del servicio de Cloud Run
Implementamos nuestro servicio de API en Cloud Run, un entorno de procesamiento sin servidores. Podemos visitar el servicio de Cloud Run a través de la consola de Google Cloud en cualquier momento.
En el menú principal, navega a Cloud Run. Se mostrará la lista de servicios que se ejecutan en Cloud Run. Deberías ver el servicio que acabas de implementar. Según el nombre que seleccionaste, deberías ver algo como lo siguiente:

Haz clic en el nombre del servicio para ver los detalles. A continuación, se muestran los detalles de la muestra:

Observa la URL, que no es más que la URL del servicio que puedes ingresar en el navegador y acceder a la API de Inventory que acabamos de implementar. Consulta las métricas y otros detalles.
Comencemos con Google Cloud Operations Suite.
4. Crea un tema de Pub/Sub para recibir la notificación de alerta
Para crear un tema de Pub/Sub, puedes seguir estos pasos en la consola de Google Cloud:
- Busca Pub/Sub en el cuadro de búsqueda y navega a Pub/Sub.

- Haz clic en la pestaña Temas si aún no lo hiciste.

- Haz clic en el botón Crear tema.

- Ingresa un nombre para el tema.

- Haz clic en el botón Crear.

- Copia el Nombre del tema con el botón del ícono de copiar. La necesitarás en la siguiente sección.

5. Crea una verificación de tiempo de actividad
Para crear una verificación de tiempo de actividad para una aplicación de Google Cloud Run, haz lo siguiente:
- Ve a Google Cloud Platform Console.
- Haz clic en la pestaña Monitoring.
- Haz clic en la pestaña Verificaciones de tiempo de actividad.
- Cerca de la parte superior de la página, haz clic en el botón Crear verificación de tiempo de actividad.

- Usa los siguientes valores:
- Protocolo : HTTPS
- Tipo de recurso : URL
- Nombre de host : Ingresa la parte de la URL del servicio de Cloud Run sin el https. A continuación, se muestra un ejemplo en la pantalla. Si no sabes cuál es la URL del servicio, ve a Cloud Run desde la consola principal de Google Cloud y navega a los detalles del servicio de Cloud Run como se explicó anteriormente para obtener la URL del servicio.
- Ruta de acceso : healthy
- Frecuencia de verificación: 1 minuto

- Haga clic en Continue.
- Activa Las coincidencias de contenido están habilitadas.
- Ingresa "All Izz Well" en Response Content. Esta cadena ya está en la aplicación cuando envía respuestas completas.
- Keep

- Mantén el parámetro Acceptable HTTP Response Code establecido en Response Code Classes y 2xx como la única clase de código de respuesta. De esta manera, solo se evaluarán los códigos de respuesta con 2xx para la cadena, y cualquier otra cosa se considerará automáticamente como una verificación fallida.

- Haga clic en Continue.
- Selecciona el tema de Cloud Pub/Sub como el canal de notificaciones y haz clic en Aceptar.

- Haga clic en Continue.
- Agrega un título reconocible.

- Haz clic en el botón Test.

- Revisa y haz clic en el botón Crear cuando esté todo listo.

Se creará tu verificación de tiempo de actividad y comenzará a supervisar tu aplicación de Cloud Run. Puedes ver el estado de tu verificación de tiempo de actividad en la pestaña Verificaciones de tiempo de actividad.

6. Felicitaciones
Felicitaciones. Configuraste correctamente tu verificación de tiempo de actividad para enviar alertas a Pub/Sub.