Configurer les notifications par e-mail

Cloud Composer 1 | Cloud Composer 2

Cette page explique comment configurer des services SMTP pour votre environnement Cloud Composer.

Avant de commencer

Si votre environnement Cloud Composer est configuré pour les adresses IP privées, assurez-vous qu'il est connecté au point de terminaison de l'API pour votre service de messagerie externe (tel que https://api.sendgrid.com). ou le serveur SMTP de votre choix).

Configurer les services de messagerie SendGrid

Pour recevoir des notifications, configurez vos variables d'environnement pour l'envoi d'e-mails via le service de messagerie SendGrid.

  1. Si ce n'est pas déjà fait, inscrivez-vous à SendGrid dans Google Cloud Console et créez une clé API. En tant que développeur Google Cloud, vous pouvez démarrer avec 12 000 e-mails gratuits par mois.

    Accéder à l'API SendGrid Email

  2. Définissez les variables d'environnement suivantes pour votre environnement:

    Nom Valeur
    SENDGRID_MAIL_FROM Adresse e-mail de l'expéditeur, telle que noreply-composer@<your-domain>.
    SENDGRID_API_KEY Clé API SendGrid.
  3. Pour tester la configuration SendGrid, procédez comme suit :

    1. Créez un DAG de test utilisant EmailOperator.
    2. Importez le DAG dans votre environnement et vérifiez que la tâche EmailOperator aboutit.
    3. Connectez-vous à SendGrid à l'aide de vos identifiants SendGrid.
    4. Dans l'interface utilisateur de SendGrid, accédez à la page "Activité".
    5. Cherchez l'e-mail dans la liste. Vous devriez voir que SendGrid a traité et distribué l'e-mail.
    6. Si l'e-mail n'est pas traité, ni distribué, effectuez les opérations suivantes :

      • Vérifiez les configurations Sendgrid.
      • Vérifiez que les variables d'environnement SENDGRID_MAIL_FROM et SENDGRID_API_KEY sont correctes.
      • Vérifiez le filtre antispam dans votre client de messagerie.

Configurer des services SMTP tiers

Pour envoyer un e-mail via un service SMTP tiers, remplacez l'option de configuration Airflow email_backend et configurez d'autres paramètres liés à SMTP.

Pour configurer un service SMTP tiers, remplacez les options de configuration Airflow suivantes:

Section Clé Valeur
email email_backend airflow.utils.email.send_email_smtp
smtp smtp_host Nom d'hôte du serveur SMTP.
smtp smtp_user Nom d'utilisateur sur le serveur SMTP.
smtp smtp_port Port du serveur SMTP. Le port 25 n'est pas disponible. Vous pouvez utiliser d'autres ports, tels que les ports SMTP standards 465 et 587.
smtp smtp_password La définition d'un mot de passe via smtp_password n'est pas acceptée. Pour définir un mot de passe SMTP, suivez les instructions fournies dans l'article Configurer un mot de passe SMTP.
smtp smtp_mail_from Adresse e-mail de l'expéditeur, telle que noreply-composer@.
smtp smtp_starttls Pour plus de sécurité, définissez la valeur sur True.
smtp smtp_ssl Pour plus de sécurité, définissez la valeur sur True.

Configurer un mot de passe SMTP pour un service SMTP tiers

Conserver un mot de passe SMTP en texte brut dans le fichier de configuration Airflow constitue une mauvaise pratique de sécurité. C'est pourquoi Cloud Composer n'est pas compatible avec cette méthode. Au lieu de cela, vous pouvez utiliser deux autres méthodes pour configurer un mot de passe SMTP.

Utiliser une commande pour récupérer un mot de passe SMTP

Vous pouvez utiliser un remplacement de configuration pour spécifier une commande permettant d'obtenir le mot de passe SMTP. Lors de la communication avec votre service SMTP, Airflow utilise cette commande pour obtenir la valeur du mot de passe.

Pour utiliser cette méthode, remplacez l'option de configuration Airflow suivante:

Section Clé Valeur
smtp smtp_password_cmd Spécifiez une commande qui renvoie le mot de passe SMTP.

Utiliser un secret stocké dans Secret Manager pour récupérer un mot de passe SMTP

Vous pouvez configurer Secret Manager en tant que backend de secrets Airflow.

Une fois que vous avez configuré Secret Manager pour votre environnement Composer, vous pouvez stocker un mot de passe SMTP dans Secret Manager:

  1. Créez un secret:

    echo -n "SMTP_PASSWORD" | gcloud beta secrets create \
      airflow-variables-smtp-password \
      --data-file=- \
      --replication-policy=automatic
    

    Remplacez SMTP_PASSWORD par votre mot de passe SMTP.

  2. Configurez Airflow pour obtenir le mot de passe SMTP de Secret Manager. Pour ce faire, remplacez l'option de configuration Airflow suivante:

    Section Clé Valeur
    smtp smtp_password_secret smtp-password

Étape suivante