Ce tutoriel explique comment configurer Application Integration pour recevoir des notifications de cluster Google Kubernetes Engine (GKE) cluster notifications 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 d'un cluster GKE. Vous pourrez ensuite utiliser les tâches Mappage de données et Data Transformer pour transformer le message Pub/Sub et créer un corps d'e-mail en texte brut.
Objectifs
- Créer une application Application Integration pour recevoir et transformer des 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,
utilisez le simulateur de coût.
Une fois que vous avez terminé les tâches décrites dans ce document, supprimez les ressources que vous avez créées pour éviter que des frais vous soient facturés. Pour en savoir plus, consultez la section Effectuer un nettoyage.
Avant de commencer
- Connectez-vous à votre Google Cloud compte. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $de crédits sans frais pour exécuter, tester et déployer des charges de travail.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the GKE, Application Integration and Pub/Sub APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the GKE, Application Integration and Pub/Sub APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.- Activez la réception des notifications de cluster GKE via Pub/Sub.
- 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 les notifications par e-mail pour les notifications de cluster, demandez à votre administrateur d'accorder les rôles IAM suivants à service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com dans votre projet :
-
Éditeur Pub/Sub (
roles/pubsub.editor) -
Éditeur Application Integration (
roles/integrations.editor)
Configurer les notifications de cluster pour votre cluster GKE
Pour utiliser Pub/Sub afin de recevoir des notifications concernant votre cluster GKE, suivez la procédure décrite dans Recevoir des notifications de cluster via Pub/Sub.
Créer une intégration
Pour créer une intégration, procédez comme suit :
Accédez à la page Application Integration dans la Google Cloud console.
Dans le menu de navigation, cliquez sur Intégrations. La page Intégrations s'affiche.
Cliquez sur Créer une intégration.
Dans Nom de l'intégration, saisissez un nom pour l'intégration que vous créez.
Si plusieurs régions sont activées, une option de menu déroulant s'affiche pour vous permettre de sélectionner une région pour l'intégration. Lorsqu'une seule région est activée, elle est définie 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 Google Cloud projet. Pour provisionner une nouvelle région, cliquez sur Activer la région en bas de la boîte de dialogue.
Cliquez sur Créer pour ouvrir l'éditeur d'intégration.
Ajouter et configurer un déclencheur Pub/Sub
Pour ajouter un déclencheur Pub/Sub à l'intégration, procédez comme suit :
Dans l'éditeur d'intégrations, sélectionnez Déclencheurs pour afficher la liste des déclencheurs disponibles.
Cliquez sur l'élément de déclencheur Pub/Sub et placez-le au niveau du concepteur.
Cliquez sur l'élément Déclencheur Pub/Sub dans l'éditeur d'intégrations pour afficher le volet de configuration du déclencheur.
Spécifiez le sujet que le déclencheur doit écouter dans le champ Sujet Pub/Sub au format suivant, où :
projects/PROJECT_ID/topics/TOPIC_IDRemplacez les éléments suivants :
PROJECT_ID: le Google Cloud projet 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-projectet que vous avez nommé votre sujetgke-notifications, saisissez :projects/my-project/topics/gke-notificationsPour afficher tous les sujets disponibles dans votre Google Cloud projet, consultez la Nom du sujet colonne dans la section Sujets. Le volet de configuration Déclencheur Pub/Sub renseigne automatiquement le champ 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 Mappage de données permet d'extraire les variables pertinentes de la notification Pub/Sub. Elle prend le fichier JSON du message Pub/Sub comme entrée et extrait les variables comme sortie.
Pour configurer la tâche de Mappage de données, procédez comme suit :
Sélectionnez Tâches pour afficher la liste des tâches disponibles.
Cliquez sur l'élément Mappage de données et placez-le dans l'éditeur d'intégrations.
Cliquez sur la tâche Mappage des données dans le concepteur pour ouvrir le volet de configuration de la tâche.
Pour ajouter une connexion de périphérie du déclencheur Pub/Sub au mappage de données, pointez 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 Mappage de données. La périphérie indique le flux de contrôle du déclencheur Pub/Sub vers la tâche Mappage de données.
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 en utilisant
CloudPubSubMessagecomme entrée :- Développez la variable JSON
CloudPubSubMessagedans la liste Variables et faites glisser la variableCloudPubSubMessage.datavers la première ligne Entrée. - 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. Procédez ensuite comme suit :
- Dans le champ Nom, saisissez
message_data. - Dans la liste Type de variable, sélectionnez Sortie de l'intégration.
- Dans la liste Type de données, sélectionnez Chaîne.
- Cliquez sur Créer. La variable
message_datas'affiche dans Résultat.
- Dans le champ Nom, saisissez
- Faites glisser la variable
CloudPubSubMessage.attributesde la liste Variables vers la deuxième ligne de la colonne Entrée. 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 :
- Dans le champ Nom, saisissez
attributes. - Dans la liste Type de variable, sélectionnez Aucun.
- Dans la liste Type de données, sélectionnez JSON.
Sélectionnez Saisir un schéma JSON dans les Options de schéma JSON, et 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" } } }Cliquez sur Créer. La variable
attributess'affiche dans Résultat. Assurez-vous que la variable d'attributs ressemble à ce qui suit :
- Dans le champ Nom, saisissez
Cliquez sur la troisième ligne de la colonne Entrée , puis sélectionnez
attributes.cluster_namedans le volet Variables. Vous devrez peut-être commencer à saisir attributs pour afficher les cinq attributs définis à partir du schéma saisi à l'étape précédente.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 :
- Dans le champ Nom, saisissez
cluster_name. - Dans la liste Type de variable, sélectionnez Sortie de l'intégration.
- Dans la liste Type de données, sélectionnez Chaîne.
- Cliquez sur Créer. La variable
cluster_names'affiche dans Résultat.
- Dans le champ Nom, saisissez
Répétez les étapes e et f pour
project_id,cluster_location,type_urletpayload.Fermez l'éditeur de mappage de données une fois le mappage terminé. Toutes les modifications seront enregistrées automatiquement.
- Développez la variable JSON
Ajouter et configurer la tâche Data Transformer (Script)
La tâche Data Transformer prend les variables extraites de la tâche Mappage de données comme entrée et les transforme en corps de message pour l'utilisateur final.
Pour configurer la tâche Data Transformer, procédez comme suit :
- Sélectionnez Tâches pour afficher la liste des tâches disponibles.
- Cliquez sur l'élément Data Transformer (Script) et placez-le dans l'éditeur d'intégrations.
- Cliquez sur la tâche Data Transformer dans le concepteur pour ouvrir le volet de configuration de la tâche.
- Pour ajouter une connexion de périphérie de la tâche Mappage de données à la tâche Data Transformer, pointez sur un point de contrôle du mappage de données, puis faites glisser une ligne vers un point de contrôle de la tâche Data Transformer. La périphérie indique le flux de contrôle de la tâche Mappage de données vers la tâche Data Transformer.
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 transformateur, consultez la page Tâche Data Transformer. Pour ce guide de démarrage rapide, procédez comme suit pour créer un script :
Cliquez sur Créer dans le panneau de gauche Variables. Un panneau Créer une variable s'ouvre sur la droite. Remplissez les champs suivants :
- Nom : saisissez
full_message. - Sélectionnez
Output from integration(Sortie de l'intégration) dans la zone de liste déroulante Type de variable. - Sélectionnez
String(Chaîne) dans la zone de liste déroulante Type de données. - Cliquez sur Créer pour créer la variable et fermer le volet. La nouvelle variable
full_messages'affiche dans la liste Variables.
- Nom : saisissez
Sélectionnez Script.
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))}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 :
- Sélectionnez Tâches dans l'éditeur d'intégrations pour afficher la liste des tâches disponibles.
- Cliquez sur l'élément Envoyer un e-mail et placez-le dans l'éditeur d'intégrations.
- Pour ajouter une connexion de périphérie de la tâche Data Transformer à la tâche Envoyer un e-mail, pointez 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.
- Cliquez sur l'élément Envoyer un e-mail sur le concepteur pour ouvrir le volet de configuration de la tâche. Définissez les propriétés suivantes :
- Destinataire(s) : saisissez une adresse e-mail. Vous allez utiliser cette adresse e-mail pour confirmer la réussite de l'intégration.
- Objet : saisissez
GKE Notifications. - Corps en texte brut : sélectionnez la variable
full_messagecréée précédemment dans la tâche Data Transformer. - 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 et votre canevas doit ressembler à ce qui suit :

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 e-mail 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 que votre intégration commence à 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égration, puis créez une version brouillon. Pour en savoir plus,
consultez la section Verrous de modification d'intégration.
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
- Dans la Google Cloud console, accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez Arrêter pour supprimer le projet.
Supprimer des ressources individuelles
Étape suivante
- Découvrez les différents types de notifications de cluster.
- Consultez la documentation Pub/Sub.