E-Mail-Benachrichtigungen konfigurieren

Auf dieser Seite wird erläutert, wie Sie SMTP-Dienste für Ihre Cloud Composer-Umgebung konfigurieren.

Hinweis

Wenn Ihre Cloud Composer-Umgebung für private IP-Adressen konfiguriert ist, muss sie mit dem API-Endpunkt Ihres externen E-Mail-Dienstes verbunden sein (z. B. https://api.sendgrid.com, oder Ihren bevorzugten SMTP-Server).

SendGrid-E-Mail-Dienste konfigurieren

Damit Sie Benachrichtigungen erhalten, konfigurieren Sie Ihre Umgebungsvariablen so, dass E-Mails über den SendGrid-E-Mail-Dienst gesendet werden.

  1. Melden Sie sich über die Google Cloud Console bei SendGrid an und erstellen Sie einen API-Schlüssel, sofern noch nicht geschehen. Als Google Cloud-Entwickler können Sie mit 12.000 kostenlosen E-Mails pro Monat starten.

  2. Öffnen Sie in der Cloud Console die Seite Umgebung erstellen.

    Seite "Umgebung erstellen" öffnen

  3. Klicken Sie unter Knotenkonfiguration auf Umgebungsvariable hinzufügen.

  4. Geben Sie die folgenden Umgebungsvariablen ein:

    Name Wert
    SENDGRID_MAIL_FROM Die E-Mail-Adresse des Absenders, z. B. noreply-composer@<your-domain>.
    SENDGRID_API_KEY Ihr SendGrid-API-Schlüssel.
  5. So testen Sie die SendGrid-Konfiguration:

    1. Erstellen Sie einen Test-DAG, der EmailOperator verwendet.
    2. Laden Sie den DAG in Ihre Umgebung hoch und prüfen Sie, ob die EmailOperator-Aufgabe erfolgreich war.
    3. Melden Sie sich bei SendGrid mit Ihren SendGrid-Anmeldedaten an.
    4. Wechseln Sie in der SendGrid-Benutzeroberfläche zur Seite "Aktivität".
    5. Durchsuchen Sie die Liste nach der E-Mail. Es sollte nun sichtbar sein, dass SendGrid die E-Mail verarbeitet und zugestellt hat.
    6. Wenn die E-Mail nicht verarbeitet und nicht zugestellt wurde, gehen Sie so vor:
      • Prüfen Sie die Sendgrid-Konfiguration.
      • Überprüfen Sie, ob die Umgebungsvariablen SENDGRID_MAIL_FROM und SENDGRID_API_KEY korrekt sind.
      • Überprüfen Sie den Spamfilter in Ihrem E-Mail-Client.

SMTP-Dienste von Drittanbietern konfigurieren

Zum Senden von E-Mails über den SMTP-Dienst eines Drittanbieters konfigurieren Sie die email_backend-Airflow-Konfigurationsoption und konfigurieren Sie weitere SMTP-bezogene Parameter.

Zum Konfigurieren des SMTP-Dienstes eines Drittanbieters überschreiben Sie die Airflow-Konfigurationsoptionen:

Bereich Schlüssel Wert
email email_backend airflow.utils.email.send_email_smtp
smtp smtp_host Der Hostname für den SMTP-Server.
smtp smtp_user Der Nutzername auf dem SMTP-Server.
smtp smtp_port Der Port für den SMTP-Server. Port 25 ist nicht verfügbar. Sie können auch andere Ports verwenden, z. B. die Standard-SMTP-Ports 465 und 587.
smtp smtp_password Das Festlegen eines Passworts über smtp_password wird nicht unterstützt. Folgen Sie der Anleitung unter SMTP-Passwort konfigurieren, um ein SMTP-Passwort festzulegen.
smtp smtp_mail_from Die E-Mail-Adresse des Absenders, z. B. noreply-composer@.
smtp smtp_starttls Attribut zur Erhöhung der Sicherheit mit True.
smtp smtp_ssl Attribut zur Erhöhung der Sicherheit mit True.

Weitere SMTP-Konfigurationen finden Sie unter default_airflow.cfg für Ihre Airflow-Version.

SMTP-Passwort für den SMTP-Dienst eines Drittanbieters konfigurieren

Die Beibehaltung eines SMTP-Passworts als Klartext in der Airflow-Konfigurationsdatei ist nicht empfehlenswert. Daher unterstützt Cloud Composer diese Methode nicht. Stattdessen können Sie zwei andere Methoden zum Konfigurieren eines SMTP-Passworts verwenden.

SMTP-Passwort mit einem Befehl abrufen

In einer Konfigurationsüberschreibung können Sie einen Befehl zum Abrufen des SMTP-Passworts angeben. Bei der Kommunikation mit Ihrem SMTP-Dienst verwendet Airflow diesen Befehl, um den Wert des Passworts abzurufen.

Wenn Sie diese Methode verwenden möchten, überschreiben Sie das folgende Airflow-Konfigurationsattribut:

Bereich Schlüssel Wert
smtp smtp_password_cmd Geben Sie einen Befehl an, der das SMTP-Passwort zurückgibt.

SMTP-Passwort mit einem in Secret Manager gespeicherten Secret abrufen

Sie können Secret Manager als Airflow-Back-End-Back-End konfigurieren.

Nachdem Sie Secret Manager für Ihre Composer-Umgebung konfiguriert haben, können Sie ein SMTP-Passwort im Secret Manager speichern:

  1. Erstellen Sie ein neues Secret:

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

    Ersetzen Sie SMTP_PASSWORD durch Ihr SMTP-Passwort.

  2. Airflow so konfigurieren, dass das SMTP-Passwort aus Secret Manager abgerufen wird Dazu überschreiben Sie das folgende Airflow-Konfigurationsattribut:

    Bereich Schlüssel Wert
    smtp smtp_password_secret smtp-password

Nächste Schritte