Configurar clústeres para recibir notificaciones por correo electrónico

En este tutorial se explica cómo configurar Application Integration para recibir notificaciones de clúster de Google Kubernetes Engine (GKE) por correo electrónico.

Crea una integración con un activador de Pub/Sub para monitorizar un tema que recibe notificaciones de un clúster de GKE. Después, puede usar las tareas de asignación de datos y de transformación de datos para transformar el mensaje de Pub/Sub y crear un cuerpo de correo de texto sin formato.

Configurar notificaciones de clúster para un clúster de GKE

Para usar Pub/Sub y recibir notificaciones sobre tu clúster de GKE, sigue los pasos que se indican en el artículo Recibir notificaciones de clústeres a través de Pub/Sub.

Crear una integración

Para crear una integración, sigue estos pasos:

  1. Ve a la página Integración de aplicaciones de la consola de Google Cloud .

    Ir a Application Integration

  2. En el menú de navegación, haz clic en Integraciones. Aparecerá la página Integraciones.

  3. Haga clic en Crear integración.

  4. En Integration name (Nombre de la integración), escriba un nombre para la integración que está creando.

  5. Si tienes varias regiones habilitadas, verás un menú desplegable para seleccionar una región para la integración. Si solo se ha habilitado una región, se seleccionará de forma predeterminada y no se mostrará el menú desplegable.

    Nota: En el menú desplegable Regiones solo se muestran las regiones aprovisionadas en tu proyecto deGoogle Cloud . Para aprovisionar una nueva región, haz clic en Habilitar región, que se muestra en la parte inferior del cuadro.

  6. Haga clic en Crear para abrir el editor de integraciones.

Añadir y configurar un activador de Pub/Sub

Para añadir un activador de Pub/Sub a la integración, sigue estos pasos:

  1. En el editor de integraciones, selecciona Activadores para ver una lista de los activadores disponibles.

  2. Haz clic en el elemento de activación Pub/Sub y colócalo en el diseñador.

  3. Haga clic en el elemento Activador de Pub/Sub del editor de integraciones para ver el panel de configuración del activador.

  4. Especifica el tema que debe monitorizar el activador en el campo Tema de Pub/Sub con el siguiente formato:

    projects/PROJECT_ID/topics/TOPIC_ID
    

    Haz los cambios siguientes:

  • PROJECT_ID: el proyecto en el que se creó el tema. Google Cloud

  • TOPIC_ID: el ID del tema de Pub/Sub que has creado en Configurar el entorno.

    Por ejemplo, si tu proyecto se llama my-project y tu tema se llama gke-notifications, introduce lo siguiente:

    projects/my-project/topics/gke-notifications
    

    Para ver todos los temas disponibles en tu Google Cloud proyecto, consulta la columna Nombre del tema en Temas. En el panel de configuración del activador Pub/Sub, se rellenará automáticamente el campo Salida del activador con una variable para contener el mensaje de Pub/Sub.

Añadir y configurar la tarea de asignación de datos

La tarea de asignación de datos ayuda a extraer variables relevantes de la notificación de Pub/Sub. Toma el archivo JSON del mensaje de Pub/Sub como entrada y extrae variables como salida.

Para configurar la tarea de asignación de datos, sigue estos pasos:

  1. Selecciona Tareas para ver una lista de las tareas disponibles.

  2. Haga clic en el elemento Asignación de datos y colóquelo en el editor de integraciones.

  3. En el diseñador, haz clic en la tarea Asignación de datos para abrir el panel de configuración de la tarea.

  4. Para añadir una conexión de borde del activador de Pub/Sub a Asignación de datos, mantén el puntero sobre un punto de control del activador de Pub/Sub y, a continuación, arrastra una línea hasta un punto de control de la tarea Asignación de datos. El borde indica el flujo de control del activador de Pub/Sub a la tarea de asignación de datos.

  5. Haga clic en Abrir editor de asignación de datos. El editor de asignación de datos le permite asignar variables de entrada a las variables de salida seleccionadas mediante las funciones de transformación disponibles. La salida estará disponible como variable para cualquier otra tarea de integración o activador. Para obtener más información sobre las variables en Application Integration, consulta Variables.

    En este tutorial, sigue estos pasos para crear una asignación con CloudPubSubMessage como entrada:

    1. Despliega la variable JSON CloudPubSubMessage en la lista Variables y arrastra la variable CloudPubSubMessage.data a la primera fila Input (Entrada).
    2. Para crear una variable de salida que contenga el valor de los datos transformados, haga clic en la primera fila de la columna Salida. A continuación, siga estos pasos:
      1. En el campo Name (Nombre), introduce message_data.
      2. En la lista Tipo de variable, selecciona Salida de integración.
      3. En la lista Tipo de datos, seleccione Cadena.
      4. Haz clic en Crear. La variable message_data aparece en Salida.
    3. Arrastre la variable CloudPubSubMessage.attributes de la lista Variables a la segunda fila de la columna Entrada.
    4. Haz clic en la segunda fila de la columna Salida para crear una variable de salida que contenga el valor de la carga útil JSON con los atributos del clúster. Rellena los siguientes campos:

      1. En el campo Name (Nombre), introduce attributes.
      2. En la lista Tipo de variable, selecciona Ninguno.
      3. En la lista Tipo de datos, seleccione JSON.
      4. Selecciona Introduce un esquema JSON en las opciones de esquema JSON y pega la siguiente carga útil:

        {
          "$schema": "http://json-schema.org/draft-07/schema#",
          "type": "object",
          "properties": {
            "cluster_name": {
              "type": "string"
            },
            "payload": {
              "type": "string"
            },
            "project_id": {
              "type": "string"
            },
            "cluster_location": {
              "type": "string"
            },
            "type_url": {
              "type": "string"
            }
          }
        }
        
      5. Haz clic en Crear. La variable attributes aparece en Salida. Comprueba que la variable de atributos tenga un aspecto similar al siguiente:

        Variables locales de Application Integration

    5. Haz clic en la tercera fila de la columna Entrada y selecciona attributes.cluster_name en el panel Variables. Es posible que tengas que empezar a escribir attributes para ver los cinco atributos definidos en el esquema introducido en el paso anterior.

    6. Haga clic en la fila correspondiente de la columna Salida para crear una variable de salida que contenga el valor del atributo de nombre del clúster. Rellena los siguientes campos:

      1. En el campo Name (Nombre), introduce cluster_name.
      2. En la lista Tipo de variable, selecciona Salida de integración.
      3. En la lista Tipo de datos, seleccione Cadena.
      4. Haz clic en Crear. La variable cluster_name aparece en Salida.
    7. Repite los pasos e y f con project_id, cluster_location, type_url y payload.

    8. Cierra el editor de asignación de datos cuando hayas terminado de asignar los datos. Los cambios que hagas se guardarán automáticamente.

Añadir y configurar la tarea Transformador de datos (secuencia de comandos)

La tarea Transformador de datos toma como entrada las variables extraídas de la tarea Asignación de datos y las transforma en un cuerpo de mensaje para que lo consuma el usuario final.

Para configurar la tarea Transformador de datos, sigue estos pasos:

  1. Selecciona Tareas para ver una lista de las tareas disponibles.
  2. Haga clic en el elemento Transformador de datos (secuencia de comandos) y colóquelo en el editor de integraciones.
  3. Haz clic en la tarea Transformador de datos del diseñador para abrir el panel de configuración de la tarea.
  4. Para añadir una conexión de borde de la tarea Asignación de datos a la tarea Transformación de datos, mantén el puntero sobre un punto de control de Asignación de datos y, a continuación, arrastra una línea hasta un punto de control de la tarea Transformación de datos. El borde indica el flujo de control de la tarea de asignación de datos a la tarea de transformación de datos.
  5. Haz clic en Abrir editor de transformador de datos. El editor de transformaciones de datos te permite escribir, editar y evaluar plantillas Jsonnet personalizadas para asignar datos en tu integración. La salida estará disponible como variable para cualquier otra tarea o activador de integración. Para obtener más información sobre esta tarea de transformación, consulta Tarea de transformación de datos. En esta guía de inicio rápido, sigue estos pasos para crear una secuencia de comandos:

    1. En el panel de la izquierda Variables, haga clic en Crear. Se abrirá un panel Crear variable en la parte derecha. Rellena los siguientes campos:

      • Nombre: escribe full_message.
      • Seleccione Output from integration en el cuadro desplegable Tipo de variable.
      • Seleccione String en el cuadro desplegable Tipo de datos.
      • Haz clic en Crear para crear la variable y cerrar el panel. La nueva variable full_message aparecerá en la lista Variables.
    2. Selecciona Guion.

    3. Usa la siguiente secuencia de comandos de ejemplo como plantilla para el cuerpo del mensaje cuando se envíen notificaciones desde tu clúster:

      local message_data = std.extVar("message_data");
      local cluster_name = std.extVar("cluster_name");
      local project_id = std.extVar("project_id");
      local cluster_location = std.extVar("cluster_location");
      local type_url = std.extVar("type_url");
      local payload = std.extVar("payload");
      
      {full_message: "Project ID: " + project_id + "\n" +
                    "Cluster Name: " + cluster_name + "\n" +
                    "Location: " + cluster_location + "\n" +
                    "Event Type: " + type_url + "\n" +
                    "Message: " + message_data + "\n" +
                    "Payload: " + std.manifestJson(std.parseJson(payload))}
      
    4. Cierra el editor de asignación de datos cuando hayas terminado de asignar los datos. Los cambios se guardarán automáticamente.

Añadir y configurar la tarea Enviar correo

Para configurar la tarea Enviar correo electrónico, sigue estos pasos:

  1. Selecciona Tareas en el editor de integraciones para ver la lista de tareas disponibles.
  2. Haz clic en el elemento Enviar correo y colócalo en el editor de integraciones.
  3. Para añadir una conexión de borde de la tarea Transformador de datos a la tarea Enviar correo, mantén el puntero sobre un punto de control de la tarea Transformador de datos y, a continuación, arrastra una línea hasta un punto de control de la tarea Enviar correo. El borde indica el flujo de control de la tarea Transformador de datos a la tarea Enviar correo.
  4. En el diseñador, haz clic en el elemento Enviar correo para abrir el panel de configuración de la tarea. Defina las siguientes propiedades:
    1. Para: introduce una dirección de correo. Usarás este correo para confirmar que la integración se ha completado correctamente.
    2. Asunto: escribe GKE Notifications.
    3. Cuerpo en texto sin formato: selecciona la variable full_message creada anteriormente en la tarea Transformador de datos.
    4. El resto de las opciones se pueden dejar con la configuración predeterminada.

Los cambios que hagas en las propiedades se guardarán automáticamente y el lienzo debería tener un aspecto similar al siguiente:

Lienzo de Application Integration

Probar integración

Para probar la nueva integración, vaya a la barra de navegación de la parte superior del diagrama de integración y haga clic en Probar. Se abrirá un panel en la parte derecha. Puedes usar el siguiente mensaje de Pub/Sub de ejemplo en la sección Añadir un valor JSON:

{
  "data": "Node pool projects/my-project/locations/us-central1-c/clusters/cluster-1/nodePools/default-pool is upgrading to version 1.29.1-gke.1589017.",
  "attributes": {
    "cluster_location": "us-central1-c",
    "cluster_name": "cluster-1",
    "payload": "{\"resourceType\":\"NODE_POOL\",\"operation\":\"operation-upgrade\",\"operationStartTime\":\"2024-05-07T20:09:35.528855756Z\",\"currentVersion\":\"1.28.7-gke.1026000\",\"targetVersion\":\"1.29.1-gke.1589017\",\"resource\":\"projects/my-project/locations/us-central1-c/clusters/cluster-1/nodePools/default-pool\"}",
    "project_id": "my-project",
    "type_url": "type.googleapis.com/google.container.v1beta1.UpgradeEvent"
  }
}

Se enviará un correo a la dirección que hayas configurado en la tarea Enviar correo después de hacer clic en el botón Probar integración.

Publicar tu integración

Una vez que hayas probado la integración correctamente, haz clic en Publicar para que empiece a procesar los mensajes.

Solo puedes editar una versión DRAFT de la integración y ejecutar solo la versión ACTIVE de la integración. Si quieres editar tu integración, haz clic en Habilitar edición en la página del diseñador de integraciones y, a continuación, crea una versión de borrador. Para obtener más información, consulta Bloqueos de edición de integraciones.