Configurer le cluster pour recevoir des notifications par e-mail


Ce tutoriel explique comment configurer l'intégration d'applications pour recevoir des notifications de cluster Google Kubernetes Engine (GKE) par e-mail.

Vous allez créer une intégration avec un déclencheur Pub/Sub pour écouter un sujet existant qui reçoit des notifications à partir d'un cluster GKE. Vous pouvez ensuite utiliser les tâches de mappage de données et de Data Transformer pour transformer le message Pub/Sub et créer un corps d'e-mail en texte brut.

Objectifs

  • Créez une application d'Application Integration d'applications pour recevoir et transformer les notifications externes de GKE.
  • Écrire une tâche Envoyer un e-mail qui envoie des notifications Pub/Sub par e-mail

Coûts

Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

Une fois que vous avez terminé les tâches décrites dans ce document, vous pouvez éviter de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez la section Effectuer un nettoyage.

Avant de commencer

  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. Activez les notifications de cluster GKE.
  9. Si vous utilisez Application Integration dans votre projet pour la première fois, assurez-vous d'avoir configuré Application Integration.

Rôles requis

Pour vous assurer que service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com dispose des autorisations nécessaires pour configurer des notifications par e-mail pour les notifications de cluster, demandez à votre administrateur d'accorder à service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com les rôles IAM suivants sur votre projet:

Configurer les notifications de cluster pour votre cluster GKE

Pour utiliser Pub/Sub pour recevoir des notifications sur votre cluster GKE, suivez Recevoir des notifications de cluster.

Créer une intégration

Pour créer une intégration, procédez comme suit :

  1. Accédez à la page Application Integration (Intégration d'applications) dans la console Google Cloud .

    Accéder à Application Integration

  2. Dans le menu de navigation, cliquez sur Intégrations. La page Integrations (Intégrations) s'affiche.

  3. Cliquez sur Créer une intégration.

  4. Dans Nom de l'intégration, saisissez un nom pour l'intégration que vous créez.

  5. Si vous avez activé plusieurs régions, une option déroulante s'affiche pour vous permettre de sélectionner une région pour l'intégration. Si une seule région a été activée, elle est sélectionnée par défaut et le menu déroulant ne s'affiche pas.

    Remarque:Le menu déroulant Régions ne répertorie que les régions provisionnées dans votre projetGoogle Cloud . Pour provisionner une nouvelle région, cliquez sur Activer la région qui s'affiche en bas de la boîte.

  6. Cliquez sur Créer pour ouvrir l'éditeur d'intégrations.

Ajouter et configurer un déclencheur Pub/Sub

Pour ajouter un déclencheur Pub/Sub à l'intégration, procédez comme suit:

  1. Dans l'éditeur d'intégrations, sélectionnez Déclencheurs pour afficher la liste des déclencheurs disponibles.

  2. Cliquez sur l'élément de déclencheur Pub/Sub et placez-le dans le concepteur.

  3. Cliquez sur l'élément Déclencheur Pub/Sub dans l'éditeur d'intégrations pour afficher le volet de configuration du déclencheur.

  4. Spécifiez le sujet que le déclencheur doit écouter dans le champ Sujet Pub/Sub au format suivant:

    projects/PROJECT_ID/topics/TOPIC_ID
    

    Remplacez les éléments suivants :

  • PROJECT_ID: le projet Google Cloud dans lequel votre sujet a été créé.

  • TOPIC_ID: ID du sujet Pub/Sub que vous avez créé dans Configurer votre environnement.

    Par exemple, si votre projet s'appelle my-project et que vous avez nommé votre sujet gke-notifications, saisissez:

    projects/my-project/topics/gke-notifications
    

    Pour afficher tous les sujets disponibles dans votre projet Google Cloud , consultez la colonne Nom du sujet dans Sujets. Le volet de configuration du déclencheur Pub/Sub renseigne automatiquement le champ Trigger Output (Sortie du déclencheur) avec une variable permettant de conserver le message Pub/Sub.

Ajouter et configurer la tâche de mappage des données

La tâche de mappage des données permet d'extraire les variables pertinentes de la notification Pub/Sub. Il utilise le fichier JSON du message Pub/Sub comme entrée et extrait les variables en sortie.

Pour configurer la tâche de mappage des données:

  1. Sélectionnez Tâches pour afficher la liste des tâches disponibles.

  2. Cliquez sur l'élément Mappage de données et placez-le dans l'éditeur d'intégrations.

  3. Cliquez sur la tâche Mappage des données dans le concepteur pour ouvrir le volet de configuration de la tâche.

  4. Pour ajouter une connexion de périphérie du déclencheur Pub/Sub au mappage de données, maintenez le pointeur sur un point de contrôle du déclencheur Pub/Sub, puis faites glisser une ligne vers un point de contrôle de la tâche de mappage de données. La périphérie indique le flux de contrôle du déclencheur Pub/Sub vers la tâche de mappage de données.

  5. Cliquez sur Ouvrir l'éditeur de mappage de données. L'éditeur de mappage de données vous permet de mapper les variables d'entrée avec les variables de sortie sélectionnées à l'aide des fonctions de transformation disponibles. Le résultat est ensuite disponible en tant que variable pour toute autre tâche ou tout autre déclencheur d'intégration. Pour en savoir plus sur les variables dans Application Integration, consultez la section Variables.

    Pour ce tutoriel, procédez comme suit pour créer un mappage à l'aide de CloudPubSubMessage comme entrée:

    1. Développez la variable JSON CloudPubSubMessage dans la liste Variables, puis faites glisser la variable CloudPubSubMessage.data vers la première ligne Entrée.
    2. Pour créer une variable de sortie contenant la valeur des données transformées, cliquez sur la première ligne de la colonne Résultat. Ensuite, procédez comme suit :
      1. Dans le champ Nom, saisissez message_data.
      2. Dans la liste Type de variable, sélectionnez Sortie de l'intégration.
      3. Dans la liste Type de données, sélectionnez Chaîne.
      4. Cliquez sur Créer. La variable message_data apparaît dans Sortie.
    3. Faites glisser la variable CloudPubSubMessage.attributes de la liste Variables vers la deuxième ligne de la colonne "Entrée".
    4. Cliquez sur la deuxième ligne de la colonne Résultat pour créer une variable de sortie contenant la valeur de la charge utile JSON avec les attributs du cluster. Remplissez les champs suivants:

      1. Dans le champ Nom, saisissez attributes.
      2. Dans la liste Type de variable, sélectionnez Aucune.
      3. Dans la liste Type de données, sélectionnez JSON.
      4. Sélectionnez Saisissez un schéma JSON dans les options de schéma JSON, puis collez la charge utile suivante:

        {
          "$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. Cliquez sur Créer. La variable attributes apparaît dans Sortie. Assurez-vous que la variable "attributes" ressemble à ceci:

        Variables locales Application Integration

    5. Cliquez sur la troisième ligne de la colonne Entrée, puis sélectionnez attributes.cluster_name dans le volet Variables. Vous devrez peut-être commencer à saisir attributes (attributs) pour afficher les cinq attributs définis à partir du schéma saisi à l'étape précédente.

    6. Cliquez sur la ligne correspondante de la colonne Résultat pour créer une variable de sortie contenant la valeur de l'attribut de nom de cluster. Remplissez les champs suivants:

      1. Dans le champ Nom, saisissez cluster_name.
      2. Dans la liste Type de variable, sélectionnez Sortie de l'intégration.
      3. Dans la liste Type de données, sélectionnez Chaîne.
      4. Cliquez sur Créer. La variable cluster_name apparaît dans Sortie.
    7. Répétez les étapes e et f pour project_id, cluster_location, type_url et payload.

    8. Fermez l'éditeur de mappage de données une fois le mappage terminé. Toutes les modifications seront enregistrées automatiquement.

Ajouter et configurer la tâche Data Transformer (Script)

La tâche de transformation des données prend les variables extraites de la tâche de mappage des données en entrée et les transforme en corps de message à destination des utilisateurs finaux.

Pour configurer la tâche Data Transformer:

  1. Sélectionnez Tâches pour afficher la liste des tâches disponibles.
  2. Cliquez sur l'élément Data Transformer (Script) (Transformateur de données (script)) et placez-le dans l'éditeur d'intégration.
  3. Cliquez sur la tâche Data Transformer dans le concepteur pour ouvrir le volet de configuration de la tâche.
  4. Pour ajouter une connexion de périphérie de la tâche de mappage des données à la tâche de transformation des données, maintenez le pointeur sur un point de contrôle de la tâche de mappage des données, puis faites glisser une ligne vers un point de contrôle de la tâche de transformation des données. La périphérie indique le flux de contrôle de la tâche de mappage de données vers la tâche de transformation des données.
  5. Cliquez sur Ouvrir l'éditeur Data Transformer. L'éditeur Data Transformer vous permet d'écrire, de modifier et d'évaluer des modèles Jsonnet personnalisés pour effectuer un mappage de données dans votre intégration. Le résultat est ensuite disponible en tant que variable pour toute autre tâche ou tout autre déclencheur d'intégration. Pour en savoir plus sur cette tâche de transformation, consultez la page Tâche Data Transformer. Pour ce guide de démarrage rapide, procédez comme suit pour créer un script:

    1. Cliquez sur  Créer dans le panneau de gauche Variables. Le panneau Créer une variable s'ouvre sur le côté droit. Remplissez les champs suivants:

      • Nom : saisissez full_message.
      • Sélectionnez Output from integration dans le menu déroulant Type de variable.
      • Sélectionnez String dans le menu déroulant Type de données.
      • Cliquez sur Créer pour créer la variable et fermer le volet. La nouvelle variable full_message apparaît dans la liste Variables.
    2. Sélectionnez Script.

    3. Utilisez l'exemple de script suivant comme modèle pour le corps du message lorsque des notifications sont envoyées depuis votre cluster:

      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. Fermez l'éditeur de mappage de données une fois le mappage terminé. Toutes les modifications seront enregistrées automatiquement.

Ajouter et configurer la tâche d'envoi d'e-mails

Pour configurer la tâche Envoyer un e-mail:

  1. Sélectionnez Tâches dans l'éditeur d'intégrations pour afficher la liste des tâches disponibles.
  2. Cliquez sur l'élément Envoyer un e-mail et placez-le dans l'éditeur d'intégrations.
  3. Pour ajouter une connexion de périphérie de la tâche Data Transformer à la tâche "Envoyer un e-mail", maintenez le pointeur sur un point de contrôle de la tâche Data Transformer, puis faites glisser une ligne vers un point de contrôle de la tâche "Envoyer un e-mail". La périphérie indique le flux de contrôle de la tâche Data Transformer vers la tâche Envoyer un e-mail.
  4. Cliquez sur l'élément Envoyer un e-mail dans le concepteur pour ouvrir le volet de configuration de la tâche. Définissez les propriétés suivantes :
    1. Destinataire(s): saisissez une adresse e-mail. Vous allez utiliser cette adresse e-mail pour confirmer la réussite de l'intégration.
    2. Objet : saisissez GKE Notifications.
    3. Corps en texte brut: sélectionnez la variable full_message créée précédemment dans la tâche Transformateur de données.
    4. Vous pouvez laisser les autres options dans la configuration par défaut.

Les modifications que vous avez apportées aux propriétés sont enregistrées automatiquement. Votre canevas devrait ressembler à ceci:

Canevas Application Integration

Tester l'intégration

Pour tester la nouvelle intégration, accédez à la barre de navigation en haut de votre diagramme d'intégration, puis cliquez sur Test. Un panneau s'ouvre sur la droite. Vous pouvez utiliser l'exemple de message Pub/Sub suivant dans la section Ajouter une valeur 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"
  }
}

Un e-mail est envoyé à l'adresse que vous avez configurée dans la tâche "Envoyer un e-mail" après avoir cliqué sur le bouton Tester l'intégration.

Publier votre intégration

Une fois que vous avez testé cette intégration, cliquez sur Publier pour commencer à traiter les messages.

Vous ne pouvez modifier qu'une version DRAFT de l'intégration et n'exécuter que la version ACTIVE de l'intégration. Si vous souhaitez modifier votre intégration, cliquez sur Activer la modification sur la page du concepteur d'intégrations, puis créez un brouillon. Pour en savoir plus, consultez la section Verrous de modification des intégrations.

Effectuer un nettoyage

Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.

Supprimer le projet

  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.

Supprimer des ressources individuelles

  1. Supprimez votre intégration d'applications.

  2. Supprimez le sujet Pub/Sub.

Étape suivante