Ce tutoriel explique comment configurer Application Integration 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 d'un cluster GKE. Vous pouvez 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éez une application Application Integration 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 :
Pour obtenir 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, 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
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the GKE, Application Integration and Pub/Sub APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the GKE, Application Integration and Pub/Sub APIs.
- Activez la réception des notifications de cluster GKE via Pub/Sub.
- Si vous utilisez Application Integration pour la première fois dans votre projet, assurez-vous d'avoir configuré Application Integration.
-
Éditeur Pub/Sub (
roles/pubsub.editor
) -
Éditeur Application Integration (
roles/integrations.editor
)
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 :iam.gserviceaccount.com
Configurer les notifications de cluster pour votre cluster GKE
Pour utiliser Pub/Sub afin de recevoir des notifications sur votre cluster GKE, suivez 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 console Google Cloud .
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, un menu déroulant 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 sera sélectionnée par défaut et le menu déroulant ne s'affichera 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 en bas de la boîte.
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 dans le 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 :
projects/PROJECT_ID/topics/TOPIC_ID
Remplacez les éléments suivants :
PROJECT_ID
: 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 sujetgke-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 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 des données" permet d'extraire les variables pertinentes de la notification Pub/Sub. Il 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 :
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 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.
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 Variables.
Pour ce tutoriel, procédez comme suit pour créer un mappage en utilisant
CloudPubSubMessage
comme entrée :- Développez la variable JSON
CloudPubSubMessage
dans la liste Variables, puis faites glisser la variableCloudPubSubMessage.data
vers 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. Ensuite, procédez 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_data
s'affiche dans Sortie.
- Dans le champ Nom, saisissez
- Faites glisser la variable
CloudPubSubMessage.attributes
de 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 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" } } }
Cliquez sur Créer. La variable
attributes
s'affiche dans Sortie. 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_name
dans le volet Variables. Vous devrez peut-être commencer à saisir attributes pour afficher les cinq attributs définis à partir du schéma saisi à l'étape précédente.Cliquez sur la ligne correspondante dans la colonne Résultat pour créer une variable de sortie contenant la valeur de l'attribut de nom du 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_name
s'affiche dans Sortie.
- Dans le champ Nom, saisissez
Répétez les étapes e et f pour
project_id
,cluster_location
,type_url
etpayload
.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 "Transformer les données" prend comme entrée les variables extraites de la tâche "Mappage de données" et les transforme en corps de message pour la consommation par l'utilisateur final.
Pour configurer la tâche Data Transformer :
- Sélectionnez Tâches pour afficher la liste des tâches disponibles.
- Cliquez sur l'élément Script Data Transformer 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 entre la tâche "Mappage de données" et la tâche "Transformateur de données", pointez sur un point de contrôle de la tâche "Mappage de données", puis faites glisser une ligne vers un point de contrôle de la tâche "Transformateur de données". L'arête indique le flux de contrôle depuis la tâche "Mappage de données" vers la tâche "Transformateur de données".
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 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
dans la liste déroulante Type de variable. - Sélectionnez
String
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_message
apparaît 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 entre la tâche "Data Transformer" et 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". L'arête indique le flux de contrôle depuis la tâche "Data Transformer" vers la tâche "Envoyer un e-mail".
- 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 :
- 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_message
créée précédemment dans la tâche Transformateur de données. - 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 à 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 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 avec succès, cliquez sur Publier pour que votre intégration commence à traiter les messages.
Vous ne pouvez modifier que la version DRAFT
de l'intégration et exécuter uniquement la version ACTIVE
. Si vous souhaitez modifier votre intégration, cliquez sur Activer la modification sur la page du concepteur d'intégrations, puis créez une version brouillon. Pour en savoir plus, consultez 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
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Supprimer des ressources individuelles
Étapes suivantes
- Découvrez les différents types de notifications de cluster.
- Consultez la documentation Pub/Sub.