Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Auf dieser Seite wird erläutert, wie Sie SMTP-Dienste für Ihre Cloud Composer-Umgebung konfigurieren.
Hinweise
Wenn Ihre Cloud Composer-Umgebung
für private IP-Adressen konfiguriert ist, prüfen Sie, ob eine Verbindung besteht.
an den API-Endpunkt für Ihren externen E-Mail-Dienst (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.
Bei SendGrid registrieren
Melden Sie sich bei SendGrid in der Google Cloud Console an, klicken Sie auf „Beim Anbieter verwalten“, um die SendGrid-Domain aufzurufen, und dann auf „Einstellungen“, um Ihren Nutzernamen abzurufen und einen API-Schlüssel zu erstellen. Als Google Cloud-Entwickler können Sie mit 12.000 kostenlosen E-Mails pro Monat starten.
Variablen konfigurieren
SendGrid verwendet den API-Schlüssel und eine Absender-E-Mail-Adresse zum Senden von E-Mails. Sie können diese Informationen auf eine der folgenden Arten angeben:
(Empfohlen) Speichern Sie Werte in Secret Manager.
Werte in Airflow speichern
Werte im Secret Manager speichern
So speichern Sie Werte im Secret Manager:
Konfigurieren Sie Secret Manager für Ihre Umgebung. Richten Sie Berechtigungen und Airflow-Konfigurationsoptionen für das Secrets-Backend ein.
Überschreiben Sie die folgenden Airflow-Konfigurationsoptionen:
Bereich Schlüssel Wert email
email_conn_id
sendgrid_default
email
email_backend
airflow.providers.sendgrid.utils.emailer.send_email
Erstellen Sie ein Secret für die SendGrid-Verbindung mit dem Namen
airflow-connections-sendgrid_default
Legen Sie den Wert des Geheimnisses auf die Verbindungs-URI fest. Beispiel:sendgrid://<username>:<sendgrid_api_key>@smtp.sendgrid.net:587
Weitere Informationen zum Speichern von Verbindungen in Secret Manager finden Sie unter Airflow-Verbindungen verwalten.
Konfigurieren Sie die E-Mail-Adresse für SendGrid:
(Airflow 2.2.4 und höher) Es ist nicht möglich, die E-Mail-Adresse über ein Secret einzurichten. Überschreiben Sie stattdessen die folgende Airflow-Konfigurationsoption:
Bereich Schlüssel Wert email
from_email
Die E-Mail-Adresse des Absenders, z. B. noreply@example.com
.(Airflow-Versionen 2.1.4 bis 2.1.3) Legen Sie die folgende Umgebungsvariable für Ihr Umgebung:
Name Wert SENDGRID_MAIL_FROM
Die E-Mail-Adresse des Absenders, z. B. noreply@example.com
.
Werte in Airflow speichern
Überschreiben Sie die folgenden Airflow-Konfigurationsoptionen:
Bereich Schlüssel Wert email
email_conn_id
sendgrid_default
email
email_backend
airflow.providers.sendgrid.utils.emailer.send_email
Konfigurieren Sie die Verbindung in Airflow. mit dem Namen
sendgrid_default
. Geben Sie den Sendgrid API-Schlüssel in der Verbindung an URI. Beispiel:gcloud composer environments run ENVIRONMENT_NAME \ --location LOCATION \ connections add -- \ --conn-uri "sendgrid://USERNAME:SENDGRID_API_KEY@smtp.sendgrid.net:587" \ sendgrid_default
Ersetzen Sie Folgendes:
ENVIRONMENT_NAME
: der Name Ihrer UmgebungLOCATION
: die Region, in der sich die Umgebung befindet.USERNAME
: der SendGrid-Nutzername.SENDGRID_API_KEY
: der SendGrid API-Schlüssel.
Konfigurieren Sie die E-Mail-Adresse für SendGrid:
(Airflow 2.2.4 und höher) Überschreiben Sie die folgende Airflow-Konfigurationsoption:
Bereich Schlüssel Wert email
from_email
Die E-Mail-Adresse „Von“, z. B. noreply@example.com
.(Airflow-Versionen 2.1.4 bis 2.1.3) Legen Sie für Ihre Umgebung die folgende Umgebungsvariable fest:
Name Wert SENDGRID_MAIL_FROM
Die E-Mail-Adresse des Absenders, z. B. noreply@example.com
.
SendGrid-Konfiguration testen
So testen Sie die SendGrid-Konfiguration:
- Erstellen Sie einen Test-DAG, der
EmailOperator
verwendet. Beispiel:
- Laden Sie den DAG in Ihre Umgebung hoch und prüfen Sie, ob die Aufgabe erfolgreich ist.
- Melden Sie sich bei SendGrid mit Ihren SendGrid-Anmeldedaten an.
- Wechseln Sie in der SendGrid-Benutzeroberfläche zur Seite "Aktivität".
- Durchsuchen Sie die Liste nach der E-Mail. Es sollte angezeigt werden, dass SendGrid verarbeitet wurde. und zugestellte E-Mail.
Falls die E-Mail nicht verarbeitet und zugestellt wurde:
- Prüfen Sie die SendGrid-Konfiguration.
- Prüfen Sie, ob das Secret Manager-Back-End aktiviert ist. Achten Sie darauf, dass Sie zusätzliche Berechtigungen erteilt und Überschreibungen für Airflow-Konfigurationsoptionen festgelegt haben.
- Ü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 überschreiben Sie die Airflow-Konfigurationsoption email_backend
und konfigurieren Sie weitere SMTP-bezogene Parameter.
Zum Konfigurieren eines SMTP-Dienstes eines Drittanbieters überschreiben Sie die folgenden 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 SMTP-Standardports 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 „Von“, 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 . |
SMTP-Passwort für den SMTP-Dienst eines Drittanbieters konfigurieren
Die Beibehaltung eines SMTP-Passworts als Klartext in der Airflow-Konfigurationsdatei ist nicht empfehlenswert. Deshalb unterstützt Cloud Composer diese Methode nicht. Stattdessen können Sie ein SMTP-Passwort mit zwei anderen Methoden konfigurieren.
SMTP-Passwort mit einem Befehl abrufen
Sie können eine Konfigurationsüberschreibung verwenden, um einen Befehl anzugeben, der das SMTP-Passwort abruft. Bei der Kommunikation mit Ihrem SMTP-Dienst verwendet Airflow diesen Befehl, um den Wert des Passworts abzurufen. Geben Sie einen einzelnen Befehl ohne wie etwa Pipes und Weiterleitungen.
Wenn Sie diese Methode verwenden möchten, überschreiben Sie den folgenden Airflow Konfigurationsoption:
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 Backend für Airflow-Secrets konfigurieren.
Nachdem Sie Secret Manager für Ihre Composer-Umgebung konfiguriert haben, können Sie ein SMTP-Passwort im Secret Manager speichern:
Erstellen Sie ein neues Secret:
echo -n "SMTP_PASSWORD" | gcloud beta secrets create \ airflow-config-smtp-password \ --data-file=- \ --replication-policy=automatic
Ersetzen Sie
SMTP_PASSWORD
durch Ihr SMTP-Passwort.Konfigurieren Sie Airflow so, dass das SMTP-Passwort vom Secret Manager abgerufen wird. Überschreiben Sie dazu die folgende Airflow-Konfigurationsoption:
Bereich Schlüssel Wert smtp
smtp_password_secret
smtp-password