Configurare i cluster per ricevere notifiche via email

Questo tutorial mostra come configurare Application Integration per ricevere notifiche dei cluster Google Kubernetes Engine (GKE) cluster notifications via email.

Crea un'integrazione con un trigger Pub/Sub per rimanere in ascolto di 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 dell'email in testo normale.

Obiettivi

  • Crea un'applicazione 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 vengono utilizzati i seguenti componenti fatturabili di Google Cloud:

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il calcolatore prezzi.

I nuovi Google Cloud utenti potrebbero avere diritto a una prova senza costi.

Al termine delle attività descritte in questo documento, puoi evitare l'addebito di ulteriori costi eliminando le risorse che hai creato. Per saperne di più, consulta Esegui la pulizia.

Prima di iniziare

  1. Accedi al tuo Google Cloud account. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. Abilita la ricezione delle notifiche dei cluster GKE tramite Pub/Sub.
  9. Se utilizzi Application Integration nel tuo progetto per la prima volta, assicurati di averlo configurato.

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 dei cluster, chiedi all'amministratore di concedere i seguenti ruoli IAM a service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com nel tuo progetto:

Configura le notifiche dei cluster per il tuo cluster GKE

Per utilizzare Pub/Sub per ricevere notifiche sul tuo cluster GKE, segui Ricevi notifiche dei cluster tramite Pub/Sub.

Crea una nuova integrazione

Per creare una nuova integrazione, segui questi passaggi:

  1. Vai alla pagina Application Integration nella Google Cloud console.

    Vai ad Application Integration

  2. Nel menu di navigazione, fai clic su Integrazioni. Viene visualizzata la pagina Integrazioni.

  3. Fai clic su Crea integrazione.

  4. In Nome integrazione, inserisci un nome per l'integrazione che stai creando.

  5. Se hai abilitato più regioni, verrà visualizzata un'opzione a discesa per selezionare una regione per l'integrazione. Se è stata abilitata una sola regione, questa verrà impostata come 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 tuo Google Cloud progetto. Per eseguire il provisioning di una nuova regione, fai clic su Abilita regione visualizzato nella parte inferiore della casella.

  6. Fai clic su Crea per aprire l'editor di integrazione.

Aggiungi e configura il trigger Pub/Sub

Per aggiungere un trigger Pub/Sub all'integrazione, segui questi passaggi:

  1. Nell'editor di integrazione, seleziona Trigger per visualizzare un elenco dei trigger disponibili.

  2. Fai clic sull'elemento del trigger Pub/Sub e posizionalo nel designer.

  3. Fai clic sull'elemento del trigger Pub/Sub nell'editor di integrazione per visualizzare il riquadro di configurazione del trigger.

  4. Specifica l'argomento che il trigger 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 Configura l'ambiente.

    Ad esempio, se il tuo progetto si chiama my-project e hai chiamato l'argomento gke-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 del trigger Pub/Sub compilerà automaticamente il campo Output trigger con una variabile per contenere il messaggio Pub/Sub.

Aggiungi e configura l'attività di mappatura dei dati

L'attività di mappatura dei dati consente di estrarre le variabili pertinenti dalla notifica Pub/Sub. Prende come input il file JSON del messaggio Pub/Sub ed estrae le variabili come output.

Per configurare l'attività di mappatura dei dati:

  1. Seleziona Attività per visualizzare un elenco delle attività disponibili.

  2. Fai clic sull'elemento Mappatura dei dati e posizionalo nell'editor di integrazione.

  3. Fai clic sull'attività Mappatura dei dati nel designer per aprire il riquadro di configurazione dell'attività.

  4. Per aggiungere una connessione di bordo dal trigger Pub/Sub alla mappatura dei dati, tieni il puntatore sopra un punto di controllo sul trigger Pub/Sub, quindi trascina una riga in un punto di controllo sull'attività di mappatura dei dati. Il bordo indica il flusso di controllo dal trigger Pub/Sub all'attività di mappatura dei dati.

  5. Fai clic su Apri editor di mappatura dei dati. L'editor di mappatura dei dati 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 in Application Integration, consulta Variabili.

    Per questo tutorial, segui questi passaggi per creare una mappatura utilizzando CloudPubSubMessage come input:

    1. Espandi la variabile JSON CloudPubSubMessage nell'elenco Variabili e trascina la variabile CloudPubSubMessage.data nella prima riga Input.
    2. Per creare una nuova variabile di output che contenga il valore dei dati trasformati, fai clic sulla prima riga nella colonna Output. Quindi, procedi nel seguente modo:
      1. Nel campo Nome, inserisci message_data.
      2. Nell'elenco Tipo di variabile, seleziona Output dall'integrazione.
      3. Nell'elenco Tipo di dati, seleziona Stringa.
      4. Fai clic su Crea. La variabile message_data viene visualizzata in Output.
    3. Trascina la variabile CloudPubSubMessage.attributes dall'elenco Variabili alla seconda riga nella colonna Input.
    4. Fai clic sulla seconda riga nella colonna Output per creare una nuova variabile di output che contenga il valore del payload JSON con gli attributi del cluster. Completa i seguenti campi:

      1. Nel campo Nome, inserisci attributes.
      2. Nell'elenco Tipo di variabile, seleziona Nessuno.
      3. Nell'elenco Tipo di dati, seleziona JSON.
      4. 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"
            }
          }
        }
        
      5. Fai clic su Crea. La variabile attributes viene visualizzata in Output. Assicurati che la variabile degli attributi sia simile alla seguente:

        Variabili locali di Application Integration

    5. Fai clic sulla terza riga nella colonna Input e seleziona attributes.cluster_name nel riquadro Variabili. Potresti dover iniziare a digitare attributi per visualizzare tutti i 5 attributi definiti dallo schema inserito nel passaggio precedente.

    6. Fai clic sulla riga corrispondente nella colonna Output per creare una nuova variabile di output che contenga il valore dell'attributo del nome del cluster. Completa i seguenti campi:

      1. Nel campo Nome, inserisci cluster_name.
      2. Nell'elenco Tipo di variabile, seleziona Output dall'integrazione.
      3. Nell'elenco Tipo di dati, seleziona Stringa.
      4. Fai clic su Crea. La variabile cluster_name viene visualizzata in Output.
    7. Ripeti i passaggi e e f per project_id, cluster_location, type_url e payload.

    8. Chiudi l'editor di mappatura dei dati al termine della mappatura. Tutte le modifiche verranno salvate automaticamente.

Aggiungi e configura l'attività di trasformazione dei dati (script)

L'attività di trasformazione dei dati 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:

  1. Seleziona Attività per visualizzare un elenco delle attività disponibili.
  2. Fai clic sull'elemento Trasformazione dei dati (script) e posizionalo nell'editor di integrazione.
  3. Fai clic sull'attività Trasformazione dei dati nel designer per aprire il riquadro di configurazione dell'attività.
  4. Per aggiungere una connessione di bordo dall'attività di mappatura dei dati all'attività di trasformazione dei dati, tieni il puntatore sopra un punto di controllo sulla mappatura dei dati, quindi trascina una riga in un punto di controllo sull'attività di trasformazione dei dati. Il bordo indica il flusso di controllo dall'attività di mappatura dei dati all'attività di trasformazione dei dati.
  5. Fai clic su Apri editor di trasformazione dei dati. L'editor di trasformazione dei dati consente di scrivere, modificare e valutare i 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:

    1. Fai clic su Crea nel riquadro a sinistra Variabili. Si aprirà un riquadro Crea variabile sul lato destro. 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.
    2. Seleziona Script.

    3. Utilizza il seguente script di esempio come modello per il corpo del messaggio quando le notifiche vengono inviate 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))}
      
    4. Chiudi l'editor di mappatura dei dati al termine della mappatura. Tutte le modifiche verranno salvate automaticamente.

Aggiungi e configura l'attività Invia email

Per configurare l'attività Invia email:

  1. Seleziona Attività nell'editor di integrazione per visualizzare l'elenco delle attività disponibili.
  2. Fai clic sull'elemento Invia email e posizionalo nell'editor di integrazione.
  3. Per aggiungere una connessione di bordo dall'attività di trasformazione dei dati all'attività Invia email, tieni il puntatore sopra un punto di controllo sull'attività di trasformazione dei dati, quindi trascina una riga in un punto di controllo sull'attività Invia email. Il bordo indica il flusso di controllo dall'attività di trasformazione dei dati all'attività Invia email.
  4. Fai clic sull'elemento Invia email nel designer per aprire il riquadro di configurazione dell'attività. Imposta le seguenti proprietà:
    1. A destinatario/i: inserisci un indirizzo email. Utilizzerai questa email per confermare il completamento dell'integrazione.
    2. Oggetto: inserisci GKE Notifications.
    3. Corpo in testo normale: seleziona la variabile full_message creata in precedenza nell' attività Trasformazione dei dati.
    4. Le opzioni rimanenti possono essere lasciate nella configurazione predefinita.

Le modifiche alle proprietà vengono salvate automaticamente e il canvas dovrebbe avere un aspetto simile al seguente:

Canvas di Application Integration

Test d'integrazione

Per testare la nuova integrazione, vai alla barra di navigazione nella parte superiore del diagramma di integrazione e fai clic su Test. 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"
  }
}

Dopo aver fatto clic sul pulsante Test d'integrazione , viene inviata un'email all'indirizzo email configurato nell'attività Invia email.

Pubblica 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 dell'integrazione. Se vuoi modificare l'integrazione, fai clic su Abilita modifica nella pagina del designer di integrazione e poi crea una versione bozza. Per ulteriori informazioni, consulta Blocchi di modifica dell'integrazione.

Libera spazio

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

  1. Nella Google Cloud console, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID progetto e fai clic su Chiudi per eliminare il progetto.

Elimina singole risorse

  1. Elimina l'integrazione di Application Integration.

  2. Elimina l'argomento Pub/Sub.

Passaggi successivi