Configura el clúster para que reciba notificaciones por correo electrónico


En este instructivo, se muestra cómo configurar Application Integration para recibir notificaciones de clústeres de Google Kubernetes Engine (GKE) por correo electrónico.

Creas una integración con un activador de Pub/Sub para escuchar un tema existente que recibe notificaciones de un clúster de GKE. Luego, puedes usar las tareas de asignación de datos y transformador de datos para transformar el mensaje de Pub/Sub y crear un cuerpo de correo electrónico de texto sin formato.

Objetivos

  • Crea una aplicación de Application Integration para recibir y transformar notificaciones externas de GKE.
  • Escribe una tarea de envío de correo electrónico que envíe notificaciones de Pub/Sub a un correo electrónico.

Costos

En este documento, usarás los siguientes componentes facturables de Google Cloud:

Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios. Es posible que los usuarios nuevos de Google Cloud califiquen para obtener una prueba gratuita.

Cuando finalices las tareas que se describen en este documento, puedes borrar los recursos que creaste para evitar que continúe la facturación. Para obtener más información, consulta Cómo realizar una limpieza.

Antes de comenzar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the GKE, Application Integration and Pub/Sub APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the GKE, Application Integration and Pub/Sub APIs.

    Enable the APIs

  8. Habilita las notificaciones de clúster de GKE.
  9. Si usas Application Integration en tu proyecto por primera vez, asegúrate de configurarlo.

Roles obligatorios

Para garantizar que service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com tenga los permisos necesarios para configurar notificaciones por correo electrónico para las notificaciones de clúster, pídele a tu administrador que otorgue a service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com los siguientes roles de IAM en tu proyecto:

Configura las notificaciones de clúster para tu clúster de GKE

Para usar Pub/Sub y recibir notificaciones sobre tu clúster de GKE, sigue las instrucciones de Cómo recibir notificaciones de clústeres.

Cómo crear una integración nueva

Para crear una integración nueva, sigue estos pasos:

  1. Ve a la página Application Integration en 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. Haz clic en Crear integración.

  4. En Nombre de la integración, ingresa un nombre para la integración que crearás.

  5. Si tienes varias regiones habilitadas, se mostrará una opción desplegable para que selecciones una región para la integración. Cuando solo se haya habilitado una región, se usará esa región de forma predeterminada y no se mostrará el menú desplegable.

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

  6. Haz clic en Crear para abrir el editor de integración.

Agrega y configura el activador de Pub/Sub

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

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

  2. Haz clic y coloca el elemento activador de Pub/Sub en el diseñador.

  3. Haz clic en el elemento activador de Pub/Sub en el editor de integración para ver el panel de configuración del activador.

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

    projects/PROJECT_ID/topics/TOPIC_ID
    

    Reemplaza lo siguiente:

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

  • TOPIC_ID: Es el ID del tema de Pub/Sub que creaste en Configura tu entorno.

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

    projects/my-project/topics/gke-notifications
    

    Para ver todos los temas disponibles en el proyecto de Google Cloud, consulta la columna Nombre del tema en Temas. El panel de configuración del activador de Pub/Sub propagará de forma automática el campo Resultado del activador con una variable para contener el mensaje de Pub/Sub.

Agrega y configura 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, haz lo siguiente:

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

  2. Haz clic y coloca el elemento Asignación de datos en el editor de integración.

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

  4. Para agregar una conexión de integración del activador de Pub/Sub a la asignación de datos, mantén el puntero sobre un punto de control del activador de Pub/Sub y, luego, arrastra una línea hasta un punto de control en la tarea de asignación de datos. La conexión de integración denota el flujo de control del activador de Pub/Sub a la tarea de asignación de datos.

  5. Haz clic en Abrir editor de asignación de datos. El Editor de asignación de datos te permite asignar variables de entrada a las variables de salida deseadas con las funciones de transformación disponibles. Entonces, el resultado está disponible como una variable para cualquier otra tarea o activador de integración. Para obtener más información sobre las variables en Application Integration, consulta Variables.

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

    1. Expande la variable JSON CloudPubSubMessage en la lista Variables y arrastra la variable CloudPubSubMessage.data a la primera fila Entrada.
    2. Para crear una variable de salida nueva que contenga el valor de los datos transformados, haz clic en la primera fila de la columna Salida. A continuación, haz lo siguiente:
      1. En el campo Nombre, ingresa message_data.
      2. En la lista Tipo de variable, selecciona Resultado de la integración.
      3. En la lista Tipos de datos, selecciona Cadena.
      4. Haz clic en Crear. La variable message_data aparece en Resultado.
    3. Arrastra la variable CloudPubSubMessage.attributes desde la lista Variables hasta la segunda fila de la columna entrada.
    4. Haz clic en la segunda fila de la columna Salida para crear una variable de salida nueva que contenga el valor de la carga útil JSON con los atributos del clúster. Completa los siguientes campos:

      1. En el campo Nombre, ingresa attributes.
      2. En la lista Tipo de variable, selecciona Ninguna.
      3. En la lista Tipo de datos, selecciona JSON.
      4. Selecciona Ingresar 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 Resultado. Asegúrate de que la variable de atributos se vea de la siguiente manera:

        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 debas comenzar a escribir atributos para ver los 5 atributos definidos desde el esquema ingresado en el paso anterior.

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

      1. En el campo Nombre, ingresa cluster_name.
      2. En la lista Tipo de variable, selecciona Resultado de la integración.
      3. En la lista Tipos de datos, selecciona Cadena.
      4. Haz clic en Crear. La variable cluster_name aparece en Resultado.
    7. Repite los pasos e y f para project_id, cluster_location, type_url y payload.

    8. Cierra el Editor de asignación de datos una vez que se complete la asignación. Los cambios se guardarán automáticamente.

Agrega y configura la tarea de Data Transformer (secuencia de comandos)

La tarea de Data Transformer toma las variables extraídas de la tarea de asignación de datos como entrada y las transforma en un cuerpo de mensaje para el consumo del usuario final.

Para configurar la tarea de Data Transformer, haz lo siguiente:

  1. Selecciona Tareas para ver una lista de tareas disponibles.
  2. Haz clic y coloca el elemento Data Transformer (secuencia de comandos) en el editor de integración.
  3. Haz clic en la tarea Data Transformer en el diseñador para abrir el panel de configuración de la tarea.
  4. Para agregar una conexión perimetral de la tarea de asignación de datos a la tarea de Data Transformer, mantén el puntero sobre un punto de control en la asignación de datos y, luego, arrastra una línea hasta un punto de control en la tarea de Data Transformer. La conexión de integración denota el flujo de control de la tarea de asignación de datos a la tarea de Data Transformer.
  5. Haz clic en Abrir editor de Data Transformer. La tarea Editor de Data Transformer te permite escribir, editar y evaluar plantillas Jsonnet personalizadas para realizar la asignación de datos en tu integración. Entonces, el resultado está disponible como una variable para cualquier otra tarea o activador de integración. Para obtener más detalles sobre esta tarea del transformador, consulta Tarea de Data Transformer. En esta guía de inicio rápido, sigue estos pasos para crear una secuencia de comandos:

    1. Haz clic en Crear en el panel izquierdo Variables. Se abrirá un panel Crear variable en el lado derecho. Completa los siguientes campos:

      • Nombre: Ingresa full_message.
      • Selecciona Output from integration en el cuadro desplegable Tipo de variable.
      • Selecciona 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 listaVariables.
    2. Selecciona Secuencia de comandos.

    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 una vez que se complete la asignación. Los cambios se guardarán automáticamente.

Agrega y configura la tarea Enviar correo electrónico

Para configurar la tarea Enviar correo electrónico, haz lo siguiente:

  1. Selecciona Tareas en el editor de integración para ver la lista de tareas disponibles.
  2. Haz clic y coloca el elemento Enviar correo electrónico en el editor de integración.
  3. Para agregar una conexión de integración de la tarea de Data Transformer a la tarea de enviar correo electrónico, mantén el puntero sobre un punto de control en la tarea de Data Transformer y, luego, arrastra una línea hasta un punto de control en la tarea de enviar correo electrónico. El perímetro denota el flujo de control de la tarea de Data Transformer a la tarea de Enviar correo electrónico.
  4. Haz clic en el elemento Enviar correo electrónico en el diseñador para abrir el panel de configuración de la tarea. Establece las siguientes propiedades:
    1. A los destinatarios: Ingresa una dirección de correo electrónico. Usa este correo electrónico para confirmar que la integración se completó correctamente.
    2. Asunto: Ingresa GKE Notifications.
    3. Cuerpo en texto sin formato: Selecciona la variable full_message que creaste antes en la tarea de Data Transformer.
    4. Las opciones restantes pueden dejarse en la configuración predeterminada.

Los cambios en las propiedades se guardan automáticamente, y tu lienzo debería verse similar a lo siguiente:

Lienzo de Application Integration

Probar la integración

Para probar la nueva integración, ve a la barra de navegación en la parte superior del diagrama de integración y haz clic en Probar. Se abrirá un panel en el lado derecho. Puedes usar el siguiente mensaje de Pub/Sub de muestra en la sección Agregar 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 electrónico a la dirección que configuraste en la tarea Enviar correo electrónico después de hacer clic en el botón Probar integración.

Publica tu integración

Después de probar esta integración de forma correcta, haz clic en Publicar para que la integración comience 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, luego, crea una versión de borrador. Para obtener más información, consulta Bloqueos de edición de integraciones.

Libera espacio

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.

Borra el proyecto

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Borra los recursos individuales

  1. Borra tu Application Integration.

  2. Borra tu tema de Pub/Sub.

¿Qué sigue?