Configuration des notifications par e-mail pour le connecteur PostgreSQL

Note

Le Snowflake Connector for PostgreSQL est soumis aux Conditions du connecteur.

Vous pouvez activer les notifications par e-mail pour le connecteur. Le connecteur utilise la procédure stockée du système de notification pour envoyer des notifications par e-mail. La configuration des notifications par e-mail est une action facultative, mais recommandée.

Configuration des notifications par e-mail

Vous pouvez configurer le connecteur de sorte qu’il envoie des notifications par e-mail lorsque des erreurs se produisent.

Suivant une planification donnée, le connecteur vérifie si de nouvelles erreurs se sont produites. Si c’est le cas, un e-mail contenant le nombre d’erreurs est envoyé aux destinataires spécifiés. Les notifications par e-mail sont envoyées de manière incrémentielle, ce qui signifie que seules les nouvelles erreurs déclenchent une notification. Pour des raisons de sécurité, les e-mails contiennent uniquement des informations sur le nombre d’erreurs (et non les erreurs elles-mêmes).

Pour recevoir des notifications par e-mail concernant les erreurs, vous devez avoir préalablement créé et configuré une table d’événements pour le compte (pour capturer les erreurs consignées), et cette table d’événements doit avoir l’option CHANGE_TRACKING définie sur TRUE.

Pour configurer des notifications par e-mail, procédez comme suit :

  1. Créer une intégration de notification

  2. Créer une vue de journal pour le connecteur

  3. Activer les notifications par e-mail

Créer une intégration de notification

Pour envoyer des notifications par e-mail, le connecteur utilise l’objet d’intégration de notification, qui est un objet Snowflake qui fournit une interface entre Snowflake et les services de messagerie.

Pour créer une intégration de notification, exécutez la commande suivante :

CREATE NOTIFICATION INTEGRATION <integration_name>
    TYPE=EMAIL
    ENABLED=TRUE
    ALLOWED_RECIPIENTS=('first.last@example.com','first2.last2@example.com');
Copy

Où :

integration_name

Spécifie le nom de l’intégration de notification.

Le connecteur nécessite le privilège USAGE sur l’intégration de notification utilisée pour envoyer l’e-mail. Pour accorder ce privilège, exécutez la commande suivante :

GRANT USAGE ON INTEGRATION <integration_name> TO APPLICATION <app_db_name>;
Copy

Où :

integration_name

Spécifie le nom de l’intégration de notification.

app_db_name

Spécifie le nom de la base de données du connecteur.

Vous trouverez plus d’informations sur la création d’une intégration de notification ici.

Créer une vue de journal pour le connecteur

Pour configurer les notifications par e-mail, vous devez créer une vue de journal pour la table d’événements qui stocke les messages consignés du connecteur. Vous pouvez créer la vue de journal dans n’importe quels base de données et schéma, à l’exception de la base de données qui sert d’instance de connecteur.

Exécutez la commande suivante pour créer une vue de journal sur la table d’événements :

CREATE SECURE VIEW <logs_view> CHANGE_TRACKING = TRUE AS
  SELECT *
  FROM <fully_qualified_event_table_name>
  WHERE RECORD_TYPE = 'LOG' AND
  RESOURCE_ATTRIBUTES:"snow.database.name" = '<app_db_name>';
Copy

Où :

logs_view

Spécifie le nom de la vue que vous souhaitez créer.

fully_qualified_event_table_name

Spécifie le nom complet de la table d’événements.

app_db_name

Spécifie le nom de la base de données du connecteur.

Le connecteur nécessite le privilège SELECT sur la vue. Il nécessite également le privilège USAGE à la fois sur la base de données et sur le schéma qui contient la vue. Pour accorder ces privilèges, exécutez les commandes suivantes :

GRANT USAGE ON DATABASE <logs_db> TO APPLICATION <app_db_name>;
GRANT USAGE ON SCHEMA <logs_db>.<logs_schema> TO APPLICATION <app_db_name>;
GRANT SELECT ON VIEW <logs_db>.<logs_schema>.<logs_view> TO APPLICATION <app_db_name>;
Copy

Où :

logs_db

Spécifie le nom de la base de données qui contient la vue que vous venez de créer.

logs_schema

Spécifie le nom du schéma qui contient la vue que vous venez de créer.

logs_view

Spécifie le nom de la vue que vous venez de créer.

app_db_name

Spécifie le nom de la base de données du connecteur.

Activer les notifications par e-mail

Après avoir créé l’intégration de notification par e-mail et la vue de journal, exécutez la commande suivante pour activer les notifications par e-mail à partir du connecteur :

CALL PUBLIC.CONFIGURE_ALERTS('<integration_name>', '<logs_db>.<logs_schema>.<logs_view>', '<schedule>', ['<email_address_1>' [, ... '<email_address_2>']]);
Copy

Où :

integration_name

Spécifie le nom de l’intégration de notification.

logs_db

Spécifie le nom de la base de données qui contient la vue que vous avez créée à l’étape précédente.

logs_schema

Spécifie le nom du schéma qui contient la vue que vous avez créée à l’étape précédente.

logs_view

Spécifie le nom de la vue que vous avez créée à l’étape précédente.

schedule

Spécifie la planification ou la fréquence selon laquelle le connecteur doit vérifier les erreurs et envoyer une notification. Pour des informations détaillées sur la spécification de la planification ou de la fréquence, voir le paramètre SCHEDULE.

['email_address_1' [, ... 'email_address_2']]

Spécifie le tableau d’une ou de plusieurs adresses e-mail citées qui peuvent recevoir des notifications par e-mail du connecteur. Les adresses e-mail de ce tableau doivent se trouver dans le paramètre ALLOWED_RECIPIENTS spécifié dans l”intégration de notification par e-mail.

Pour modifier la configuration d’une notification par e-mail, utilisez la commande ci-dessus en fournissant les paramètres révisés.

Désactivation des notifications par e-mail

Pour désactiver les notifications par e-mail, exécutez la commande suivante :

CALL PUBLIC.DISABLE_ALERTS();
Copy

Cette commande retire toutes les adresses e-mail qui ont été ajoutées lors de la configuration initiale.

Prochaines étapes

Après avoir effectué ces procédures, suivez les étapes à la section Configuration du conteneur Agent Snowflake Connector for PostgreSQL.