Questo tutorial mostra come configurare l'integrazione delle applicazioni per ricevere via email le notifiche del cluster di Google Kubernetes Engine (GKE).
Crea un'integrazione con un trigger Pub/Sub per ascoltare un argomento esistente che riceve notifiche da un cluster GKE. Puoi quindi utilizzare le attività di mappatura dei dati e di trasformazione dei dati per trasformare il messaggio Pub/Sub e creare un corpo email in testo normale.
Obiettivi
- Crea un'applicazione di Application Integration per ricevere e trasformare le notifiche esterne da GKE.
- Scrivi un'attività Invia email che invii le notifiche Pub/Sub via email.
Costi
In questo documento utilizzi i seguenti componenti fatturabili di Google Cloud:
Per generare una stima dei costi in base all'utilizzo previsto,
utilizza il Calcolatore prezzi.
Al termine delle attività descritte in questo documento, puoi evitare la fatturazione continua eliminando le risorse che hai creato. Per ulteriori informazioni, consulta la sezione Pulizia.
Prima di iniziare
- 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.
-
Make sure 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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the GKE, Application Integration and Pub/Sub APIs.
- Attiva le notifiche del cluster GKE.
- Se utilizzi Application Integration nel tuo progetto per la prima volta, assicurati di aver configurato Application Integration.
Ruoli obbligatori
Per assicurarti che service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com disponga delle autorizzazioni necessarie per configurare le notifiche via email per le notifiche del cluster, chiedi all'amministratore di concedere a service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com i seguenti ruoli IAM nel tuo progetto:
-
Editor Pub/Sub (
roles/pubsub.editor
) -
Editor di integrazione delle applicazioni (
roles/integrations.editor
)
Configura le notifiche del cluster per il tuo cluster GKE
Per utilizzare Pub/Sub per ricevere notifiche sul tuo cluster GKE, consulta Ricevere notifiche del cluster.
Creare una nuova integrazione
Per creare una nuova integrazione, segui questi passaggi:
Vai alla pagina Application Integration (Integrazione applicazioni) nella console Google Cloud.
Nel menu di navigazione, fai clic su Integrations (Integrazioni). Viene visualizzata la pagina Integrations (Integrazioni).
Fai clic su Crea integrazione.
In Nome integrazione, inserisci un nome per l'integrazione che stai creando.
Se hai attivato più regioni, viene visualizzata un'opzione a discesa per selezionare una regione per l'integrazione. Se è stata attivata una sola regione, verrà utilizzata per impostazione predefinita e il menu a discesa non verrà visualizzato.
Nota: il menu a discesa Regioni elenca solo le regioni di cui è stato eseguito il provisioning nel Google Cloud progetto. Per eseguire il provisioning di una nuova regione, fai clic su Attiva regione visualizzato nella parte inferiore della finestra.
Fai clic su Crea per aprire l'editor di integrazione.
Aggiungi e configura l'trigger Pub/Sub
Per aggiungere un attivatore Pub/Sub all'integrazione:
Nell'editor dell'integrazione, seleziona Trigger per visualizzare un elenco di trigger disponibili.
Fai clic e posiziona l'elemento trigger Pub/Sub nel designer.
Fai clic sull'elemento Trigger Pub/Sub nell'editor di integrazione per visualizzare il riquadro di configurazione dell'attivatore.
Specifica l'argomento che l'attivatore deve ascoltare nel campo Argomento Pub/Sub nel seguente formato:
projects/PROJECT_ID/topics/TOPIC_ID
Sostituisci quanto segue:
PROJECT_ID
: il Google Cloud progetto in cui è stato creato l'argomento.TOPIC_ID
: l'ID dell'argomento Pub/Sub che hai creato in Configurare l'ambiente.Ad esempio, se il nome del progetto è
my-project
e hai chiamato l'argomentogke-notifications
, inserisci:projects/my-project/topics/gke-notifications
Per visualizzare tutti gli argomenti disponibili nel tuo Google Cloud progetto, consulta la colonna Nome argomento in Argomenti. Il riquadro di configurazione dell'attivatore Pub/Sub compila automaticamente il campo Output trigger con una variabile per contenere il messaggio Pub/Sub.
Aggiungere e configurare l'attività di mappatura dei dati
L'attività di mappatura dei dati consente di estrarre le variabili pertinenti dalla notifica Pub/Sub. Prende il file JSON del messaggio Pub/Sub come input ed estrae le variabili come output.
Per configurare l'attività di mappatura dei dati:
Seleziona Attività per visualizzare un elenco delle attività disponibili.
Fai clic e posiziona l'elemento Mappatura dei dati nell'editor di integrazione.
Fai clic sull'attività Mappatura dei dati nel designer per aprire il riquadro di configurazione per l'attività.
Per aggiungere una connessione di bordo dall'attivatore Pub/Sub alla mappatura dei dati, tieni premuto il cursore su un punto di controllo dell'attivatore Pub/Sub, quindi trascina una linea fino a un punto di controllo nell'attività di mappatura dei dati. Il bordo indica il flusso di controllo dall'attivatore Pub/Sub all'attività di mappatura dei dati.
Fai clic su Apri editor di mappatura dei dati. L'editor di mappatura dei dati ti consente di mappare le variabili di input alle variabili di output selezionate utilizzando le funzioni di trasformazione disponibili. L'output è quindi disponibile come variabile per qualsiasi altra attività o trigger di integrazione. Per ulteriori informazioni sulle variabili nell'Application Integration, consulta VARIABILI.
Per questo tutorial, segui questi passaggi per creare una mappatura utilizzando
CloudPubSubMessage
come input:- Espandi la variabile JSON
CloudPubSubMessage
nell'elenco Variabili e trascina la variabileCloudPubSubMessage.data
nella prima riga Input. - Per creare una nuova variabile di output che contenga il valore dei dati trasformati,
fai clic sulla prima riga della colonna Output. Poi:
- Nel campo Nome, inserisci
message_data
. - Nell'elenco Tipo di variabile, seleziona Output dall'integrazione.
- Nell'elenco Tipo di dati, seleziona Stringa.
- Fai clic su Crea. La variabile
message_data
viene visualizzata in Output.
- Nel campo Nome, inserisci
- Trascina la variabile
CloudPubSubMessage.attributes
dall'elenco Variabili alla seconda riga della colonna Input. Fai clic sulla seconda riga della colonna Output per creare una nuova variabile di output per contenere il valore del payload JSON con gli attributi del cluster. Completa i seguenti campi:
- Nel campo Nome, inserisci
attributes
. - Nell'elenco Tipo di variabile, seleziona Nessuna.
- Nell'elenco Tipo di dati, seleziona JSON.
Seleziona Inserisci uno schema JSON dalle opzioni dello schema JSON e incolla il seguente payload:
{ "$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" } } }
Fai clic su Crea. La variabile
attributes
viene visualizzata in Output. Assicurati che la variabile attributes abbia un aspetto simile al seguente:
- Nel campo Nome, inserisci
Fai clic sulla terza riga della colonna Input e seleziona
attributes.cluster_name
nel riquadro Variabili. Potrebbe essere necessario iniziare a digitare attributes per visualizzare tutti e 5 gli attributi definiti dallo schema inserito nel passaggio precedente.Fai clic sulla riga corrispondente della colonna Output per creare una nuova variabile di output che contenga il valore dell'attributo del nome del cluster. Completa i seguenti campi:
- Nel campo Nome, inserisci
cluster_name
. - Nell'elenco Tipo di variabile, seleziona Output dall'integrazione.
- Nell'elenco Tipo di dati, seleziona Stringa.
- Fai clic su Crea. La variabile
cluster_name
viene visualizzata in Output.
- Nel campo Nome, inserisci
Ripeti i passaggi e e f per
project_id
,cluster_location
,type_url
epayload
.Chiudi l'editor di mappatura dei dati al termine della mappatura. Tutte le modifiche verranno salvate automaticamente.
- Espandi la variabile JSON
Aggiungere e configurare l'attività Data Transformer (script)
L'attività Data Transformer prende come input le variabili estratte dall'attività di mappatura dei dati e le trasforma in un corpo del messaggio per l'utilizzo da parte dell'utente finale.
Per configurare l'attività di trasformazione dei dati:
- Seleziona Attività per visualizzare un elenco delle attività disponibili.
- Fai clic e posiziona l'elemento Trasformatore dati (script) nell'Editor integrazioni.
- Fai clic sull'attività Data Transformer nel designer per aprire il riquadro di configurazione dell'attività.
- Per aggiungere una connessione di bordo dall'attività di mappatura dei dati all'attività di trasformazione dei dati, tieni premuto il cursore sopra un punto di controllo nella mappatura dei dati e trascina una linea fino a un punto di controllo nell'attività di trasformazione dei dati. Il bordo indica il flusso di controllo dall'attività Mappatura dei dati all'attività Trasformatore dei dati.
Fai clic su Apri editor di Data Transformer. L'editor di trasformatori di dati ti consente di scrivere, modificare e valutare modelli Jsonnet personalizzati per eseguire la mappatura dei dati nell'integrazione. L'output è quindi disponibile come variabile per qualsiasi altra attività o trigger di integrazione. Per ulteriori dettagli su questa attività di trasformazione, consulta Attività di trasformazione dei dati. Per questa guida rapida, segui questi passaggi per creare uno script:
Fai clic su
Crea nel riquadro a sinistra Variabili. Sul lato destro si aprirà il riquadro Crea variabile. Completa i seguenti campi:- Nome: inserisci
full_message
. - Seleziona
Output from integration
nella casella a discesa Tipo di variabile. - Seleziona
String
nella casella a discesa Tipo di dati. - Fai clic su Crea per creare la variabile e chiudere il riquadro. La nuova variabile
full_message
verrà visualizzata nell'elenco Variabili.
- Nome: inserisci
Seleziona Script.
Utilizza lo script di esempio seguente come modello per il corpo del messaggio quando vengono inviate notifiche dal 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))}
Chiudi l'editor di mappatura dei dati al termine della mappatura. Eventuali modifiche verranno salvate automaticamente.
Aggiungi e configura l'attività Invia email
Per configurare l'attività Invia email:
- Seleziona Attività nell'editor di integrazione per visualizzare l'elenco delle attività disponibili.
- Fai clic e posiziona l'elemento Invia email nell'editor di integrazione.
- Per aggiungere una connessione di bordo dall'attività Data Transformer all'attività Invia email, tieni premuto il cursore sopra un punto di controllo nell'attività Data Transformer, quindi trascina una riga fino a un punto di controllo nell'attività Invia email. Il bordo indica il flusso di controllo dall'attività Data Transformer all'attività Invia email.
- Fai clic sull'elemento Invia email nel designer per aprire il riquadro di configurazione dell'attività. Imposta le seguenti proprietà:
- A destinatari: inserisci un indirizzo email. Utilizzerai questa email per confermare il completamento dell'integrazione.
- Oggetto: inserisci
GKE Notifications
. - Testo normale del corpo: seleziona la variabile
full_message
creata in precedenza nell'attività Data Transformer. - Le opzioni rimanenti possono essere lasciate nella configurazione predefinita.
Le modifiche alle proprietà vengono salvate automaticamente e il tuo canvas dovrebbe avere un aspetto simile al seguente:
Test d'integrazione
Per testare la nuova integrazione, vai alla barra di navigazione nella parte superiore del diagramma di integrazione e fai clic su Testa. Si aprirà un riquadro sul lato destro. Puoi utilizzare il seguente messaggio Pub/Sub di esempio nella sezione Aggiungi un valore 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"
}
}
Viene inviata un'email all'indirizzo che hai configurato nell'attività Invia email dopo aver fatto clic sul pulsante Testa integrazione.
Pubblicare l'integrazione
Dopo aver testato l'integrazione, fai clic su Pubblica per avviare l'elaborazione dei messaggi.
Puoi modificare solo una versione DRAFT
dell'integrazione ed eseguire solo la versione ACTIVE
. Se vuoi modificare l'integrazione, fai clic su Attiva modifica nella pagina del designer dell'integrazione e poi crea una versione di bozza. Per ulteriori informazioni, consulta Blocchi di modifica dell'integrazione.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Elimina il progetto
- 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.
Elimina singole risorse
Passaggi successivi
- Scopri di più sui tipi di notifiche di cluster.
- Consulta la documentazione di Pub/Sub.