Automatiser la configuration des notifications

Vous pouvez configurer Cloud Build pour vous envoyer des notifications de compilation à Slack, à un serveur SMTP, à un point de terminaison HTTP ou à une instance BigQuery à l'aide des notifications Cloud Build. Cette page explique comment automatiser le processus de configuration pour le système d'alerte souhaité.

Automatiser la configuration des notifications

Cloud Build fournit un script de configuration que vous pouvez utiliser pour automatiser la configuration des notifications. Pour configurer les notifications à l'aide du script de configuration, procédez comme suit :

Slack

Configurer

Les sections suivantes décrivent les étapes à suivre avant d'automatiser la configuration des notifications pour votre système d'alerte.

Activation des API…

Activer les API Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager.

Activer les API

Obtenir et stocker des identifiants

  1. Créez une application Slack pour l'espace de travail Slack auquel vous souhaitez envoyer des notifications.

  2. Activez les webhooks entrants pour publier des messages depuis Cloud Build vers Slack.

  3. Accédez à votre application Slack pour localiser l'URL du webhook entrant. Votre URL ressemblera à ce qui suit :

    http://hooks.slack.com/services/...
    
  4. Stockez l'URL du webhook entrant dans Secret Manager :

    1. Ouvrez la page Secret Manager dans Google Cloud Console :

      Ouvrir la page Secret Manager

    2. Cliquez sur Créer un secret.

    3. Attribuez un nom à votre secret.

    4. Sous Valeur du secret, ajoutez l'URL du webhook entrant pour votre application Slack.

    5. Pour enregistrer votre secret, cliquez sur Créer un secret.

Accorder des autorisations

Cloud Run exécute vos images de système d'alerte avec le compte de service Compute Engine par défaut. Pour que le compte de service puisse récupérer le secret à partir de Secret Manager, vous devez attribuer au compte de service le rôle "Accesseur de secrets du gestionnaire de secrets" :

Autorisez votre compte de service Cloud Run à accéder à votre secret :

  1. Accédez à la page IAM dans Google Cloud Console

    Ouvrir la page IAM

  2. Recherchez le compte de service Compute Engine par défaut associé à votre projet :

    Votre compte de service Compute Engine par défaut ressemblera à ce qui suit, où project-number est le numéro de votre projet :

    project-number-compute@developer.gserviceaccount.com
    

    Prenez note du compte de service Compute Engine par défaut.

  3. Ouvrez la page Secret Manager dans Google Cloud Console :

    Ouvrir la page Secret Manager

  4. Cliquez sur le nom de votre secret.

  5. Dans l'onglet Autorisations, cliquez sur Ajouter un compte principal.

  6. Ajoutez le compte de service Compute Engine par défaut associé à votre projet.

  7. Sélectionnez le rôle Accesseur de secrets du gestionnaire de secrets.

  8. Cliquez sur Enregistrer.

Écrire un fichier de configuration pour le système de notification

Rédigez un fichier de configuration du système d'alerte pour configurer votre système d'alerte Slack et filtrer les événements de compilation :

Dans l'exemple de fichier de configuration du système d'alerte suivant, le champ filter utilise Common Expression Language avec la variable disponible, build, pour filtrer les événements de compilation à l'état SUCCESS :

  apiVersion: cloud-build-notifiers/v1
  kind: SlackNotifier
  metadata:
    name: example-slack-notifier
  spec:
    notification:
      filter: build.status == Build.Status.SUCCESS
      delivery:
        webhookUrl:
          secretRef: webhook-url
    secrets:
    - name: webhook-url
       value: projects/project-id/secrets/secret-name/versions/latest

Où :

  • webhook-url est la variable de configuration utilisée dans cet exemple pour référencer le chemin d'URL du webhook Slack stocké dans Secret Manager. Le nom de la variable que vous spécifiez ici doit correspondre au champ name sous secrets.
  • project-id est l'ID de votre projet Cloud.
  • secret-name est le nom de votre secret contenant l'URL de votre webhook Slack.

Pour afficher cet exemple, consultez le fichier de configuration du système d'alerte pour le système d'alerte Slack.

Exécuter le script d'automatisation

Pour automatiser la configuration des notifications, procédez comme suit :

  1. Clonez le dépôt cloud-build-notifier.

  2. Exécutez la commande suivante à la racine du dépôt :

     ./setup.sh notifier config-path secret-name
    

    Où :

    • notifier est le nom de votre système d'alerte, tel que slack, smtp, bigquery ou http.
    • config-path est le chemin d'accès au fichier de configuration de vos systèmes d'alerte.
    • secret-name est le nom du secret stocké dans Secret Manager.

Une fois le script exécuté, le message suivant s'affiche :

** NOTIFIER SETUP COMPLETE **

Le système de notification est maintenant configuré. Vous pouvez afficher le script complet dans le dépôt cloud-build-notifiers ou exécuter ./setup.sh --help pour obtenir les instructions d'utilisation associées au script.

SMTP

Configurer

Les sections suivantes décrivent les étapes à suivre avant d'automatiser la configuration des notifications pour votre système d'alerte.

Activation des API…

Activer les API Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager.

Activer les API

Stockage des identifiants

  1. Stockez le mot de passe du compte de messagerie de l'expéditeur dans Secret Manager :

  2. Ouvrez la page Secret Manager dans Google Cloud Console :

    Ouvrir la page Secret Manager

  3. Cliquez sur Créer un secret.

  4. Attribuez un nom à votre secret.

  5. Sous Valeur du secret, ajoutez le mot de passe du compte de messagerie de l'expéditeur.

  6. Pour enregistrer votre secret, cliquez sur Créer un secret.

Accorder des autorisations

Cloud Run exécute vos images de système d'alerte avec le compte de service Compute Engine par défaut. Pour que le compte de service puisse récupérer le secret à partir de Secret Manager, vous devez attribuer au compte de service le rôle "Accesseur de secrets du gestionnaire de secrets" :

Autorisez votre compte de service Cloud Run à accéder à votre secret :

  1. Accédez à la page IAM dans Google Cloud Console

    Ouvrir la page IAM

  2. Recherchez le compte de service Compute Engine par défaut associé à votre projet :

    Votre compte de service Compute Engine par défaut ressemblera à ce qui suit, où project-number est le numéro de votre projet :

    project-number-compute@developer.gserviceaccount.com
    

    Prenez note du compte de service Compute Engine par défaut.

  3. Ouvrez la page Secret Manager dans Google Cloud Console :

    Ouvrir la page Secret Manager

  4. Cliquez sur le nom de votre secret.

  5. Dans l'onglet Autorisations, cliquez sur Ajouter un compte principal.

  6. Ajoutez le compte de service Compute Engine par défaut associé à votre projet.

  7. Sélectionnez le rôle Accesseur de secrets du gestionnaire de secrets.

  8. Cliquez sur Enregistrer.

Écrire un fichier de configuration pour le système de notification

Rédigez un fichier de configuration du système d'alerte pour configurer votre système d'alerte SMTP et filtrer les événements de compilation :

Dans l'exemple de fichier de configuration du système d'alerte suivant, le champ filter utilise Common Expression Language avec la variable disponible, build, pour filtrer les événements de compilation à l'état SUCCESS :

 apiVersion: cloud-build-notifiers/v1
 kind: SMTPNotifier
 metadata:
   name: example-smtp-notifier
 spec:
   notification:
     filter: build.status == Build.Status.SUCCESS
     delivery:
       server: server-host-name
       port: "port"
       sender: sender-email
       from: from-email
       recipients:
         - recipient-email
         # optional: more emails here
       password:
         secretRef: smtp-password
   secrets:
   - name: smtp-password
     value: projects/project-id/secrets/secret-name/versions/latest

Où :

  • server-host-name est l'adresse de votre serveur SMTP.
  • port est le port qui gère les requêtes SMTP. Cette valeur doit être spécifiée sous forme de chaîne.
  • sender-email est l'adresse e-mail du compte de l'expéditeur, visible par le paramètre server-host-name spécifié.
  • from-email est l'adresse e-mail visible par les destinataires.
  • recipient-email est une liste d'une ou de plusieurs adresses e-mail destinées à recevoir les messages de l'expéditeur.
  • smtp-password est la variable de configuration utilisée dans cet exemple pour faire référence au mot de passe du compte de messagerie de l'expéditeur stocké dans Secret Manager. Le nom de la variable que vous spécifiez ici doit correspondre au champ name sous secrets.
  • project-id est l'ID de votre projet Cloud.
  • secret-name est le nom de votre secret contenant le mot de passe du compte de messagerie de l'expéditeur.

Pour afficher cet exemple, consultez le fichier de configuration du système d'alerte pour le système d'alerte SMTP.

Exécuter le script d'automatisation

Pour automatiser la configuration des notifications, procédez comme suit :

  1. Clonez le dépôt cloud-build-notifier.

  2. Exécutez la commande suivante à la racine du dépôt :

     ./setup.sh notifier config-path secret-name
    

    Où :

    • notifier est le nom de votre système d'alerte, tel que slack, smtp, bigquery ou http.
    • config-path est le chemin d'accès au fichier de configuration de vos systèmes d'alerte.
    • secret-name est le nom du secret stocké dans Secret Manager.

Une fois le script exécuté, le message suivant s'affiche :

** NOTIFIER SETUP COMPLETE **

Le système de notification est maintenant configuré. Vous pouvez afficher le script complet dans le dépôt cloud-build-notifiers ou exécuter ./setup.sh --help pour obtenir les instructions d'utilisation associées au script.

BigQuery

Configurer

Les sections suivantes décrivent les étapes à suivre avant d'automatiser la configuration des notifications pour votre système d'alerte.

Activation des API…

Activer les API Cloud Build, Cloud Run, Pub/Sub, and BigQuery.

Activer les API

Accorder des autorisations

Autorisez votre compte de service Cloud Run à créer et à écrire des tables BigQuery, ainsi qu'à récupérer des données Artifact Registry associées à votre compilation :

  1. Accédez à la page IAM dans Google Cloud Console

    Ouvrir la page IAM

  2. Recherchez le compte de service Compute Engine par défaut associé à votre projet :

    Votre compte de service Compute Engine par défaut ressemblera à ce qui suit, où project-number est le numéro de votre projet :

        project-number-compute@developer.gserviceaccount.com
    
  3. Cliquez sur l'icône en forme de crayon sur la ligne contenant votre compte de service Compute Engine par défaut.

    L'onglet Modifier les autorisations s'affiche.

    1. Cliquez sur Ajouter un autre rôle.

    2. Ajoutez les rôles suivants :

      • Lecteur Artifact Registry
      • Éditeur de données BigQuery

        Le rôle Lecteur Artifact Registry vous permet d'extraire des données pour vos images. L'éditeur de données BigQuery vous offre un accès en lecture et en écriture à vos données.

    3. Cliquez sur Enregistrer.

Écrire un fichier de configuration pour le système de notification

Rédigez un fichier de configuration du système d'alerte pour configurer votre système d'alerte BigQuery et filtrer les événements de compilation :

Dans l'exemple de fichier de configuration du système d'alerte suivant, le champ filter utilise Common Expression Language avec la variable build pour filtrer les événements de compilation avec un ID de déclencheur spécifié :

 apiVersion: cloud-build-notifiers/v1
 kind: BigQueryNotifier
 metadata:
   name: example-bigquery-notifier
 spec:
   notification:
     filter: build.build_trigger_id == "123e4567-e89b-12d3-a456-426614174000"
     delivery:
       table: projects/project-id/datasets/dataset-name/tables/table-name

Où :

  • project-id est l'ID de votre projet Cloud.
  • dataset-name est le nom que vous souhaitez donner à l'ensemble de données.
  • table-name est le nom que vous souhaitez donner à la table.

Le table-name du fichier de configuration de votre système d'alerte peut se référer à :

  • une table inexistante ;
  • une table vide sans schéma ;
  • une table existante avec un schéma qui correspond aux spécifications de schéma du système d'alerte BigQuery.

Pour afficher cet exemple, consultez le fichier de configuration du système d'alerte pour le système d'alerte BigQuery.

Exécuter le script d'automatisation

Pour automatiser la configuration des notifications, procédez comme suit :

  1. Clonez le dépôt cloud-build-notifier.

  2. Exécutez la commande suivante à la racine du dépôt :

     ./setup.sh notifier config-path
    

    Où :

    • notifier est le nom de votre système d'alerte, tel que slack, smtp, bigquery ou http.
    • config-path est le chemin d'accès au fichier de configuration de vos systèmes d'alerte.

Une fois le script exécuté, le message suivant s'affiche :

** NOTIFIER SETUP COMPLETE **

Le système de notification est maintenant configuré. Vous pouvez afficher le script complet dans le dépôt cloud-build-notifiers ou exécuter ./setup.sh --help pour obtenir les instructions d'utilisation associées au script.

HTTP

Configurer

Les sections suivantes décrivent les étapes à suivre avant d'automatiser la configuration des notifications pour votre système d'alerte.

Activation des API…

Activer les API Cloud Build, Cloud Run, and Pub/Sub.

Activer les API

Écrire un fichier de configuration pour le système de notification

Rédigez un fichier de configuration du système d'alerte pour configurer votre système d'alerte HTTP et filtrer les événements de compilation :

Dans l'exemple de fichier de configuration du système d'alerte suivant, le champ filter utilise Common Expression Language avec la variable disponible, build, pour filtrer les événements de compilation à l'état SUCCESS :

    apiVersion: cloud-build-notifiers/v1
    kind: HTTPNotifier
    metadata:
      name: example-http-notifier
    spec:
      notification:
        filter: build.status == Build.Status.SUCCESS
        delivery:
          # The `http(s)://` protocol prefix is required.
          url: url

Où :

  • url est la variable de configuration utilisée dans cet exemple pour spécifier l'URL de votre requête.
  • url est l'URL que vous souhaitez spécifier en tant que serveur destinataire.

Pour afficher cet exemple, consultez le fichier de configuration du système d'alerte pour le système d'alerte HTTP.

Exécuter le script d'automatisation

Pour automatiser la configuration des notifications, procédez comme suit :

  1. Clonez le dépôt cloud-build-notifier.

  2. Exécutez la commande suivante à la racine du dépôt :

     ./setup.sh notifier config-path
    

    Où :

    • notifier est le nom de votre système d'alerte, tel que slack, smtp, bigquery ou http.
    • config-path est le chemin d'accès au fichier de configuration de vos systèmes d'alerte.

Une fois le script exécuté, le message suivant s'affiche :

** NOTIFIER SETUP COMPLETE **

Le système de notification est maintenant configuré. Vous pouvez afficher le script complet dans le dépôt cloud-build-notifiers ou exécuter ./setup.sh --help pour obtenir les instructions d'utilisation associées au script.

Étape suivante