Wie verwende ich Amazon SES als SMTP-Host, um E-Mails von Amazon MWAA DAG-Aufgaben zu senden?
Ich möchte Amazon Simple Email Service (Amazon SES) als SMTP-Host (Simple Mail Transfer Protocol) verwenden, um E-Mails von einer Directed Acyclic Graph (DAG)-Aufgabe in Amazon Managed Workflows für Apache Airflow (Amazon MWAA) zu senden.
Behebung
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI-Version verwendest.
Gehe wie folgt vor, um Amazon SES als SMTP-Host zum Senden von E-Mails von einer DAG-Aufgabe auf Amazon MWAA zu verwenden:
- Richte den E-Mail-Versand mit Amazon SES ein.
- Erstelle Amazon SES SMTP-Anmeldeinformationen, um E-Mails in Amazon MWAA zu senden.
Hinweis: Die Anmeldeinformationen für die SMTP-Schnittstelle unterscheiden sich von den Zugriffsschlüsseln, die du mit AWS Identity Access and Management (IAM) für einen SMTP-Benutzer erstellst. - Füge die Apache Airflow-Konfigurationsoptionen der Amazon MWAA-Umgebung hinzu.
- Stelle die folgenden Werte für die Konfigurationsoptionen ein:
Stelle email.email_backend auf airflow.utils.email.send_email_smtp um.
Stelle smtp.smtp_host auf email-smtp.region.amazonaws.com um.
Hinweis: Ersetze die Region durch deine AWS-Region.
Stelle smtp.smtp_starttls auf Falsch um.
Stelle smtp.smtp_ssl auf Wahr um.
Stelle smtp.smtp_port auf 587 um.
Hinweis: Verwende Port 587 für SMTP-Verkehr. Standardmäßig blockiert AWS den ausgehenden SMTP-Verkehr auf Port 25 von allen Amazon Elastic Compute Cloud (Amazon EC2)-Instances. Um ausgehenden Datenverkehr über Port 25 zu senden, sende eine Anfrage, um die Beschränkung aufzuheben.
Stelle smtp.smtp_mail_from auf die E-Mail-Adresse um.
Hinweis: Weitere Informationen zu den oben genannten Konfigurationsoptionen findest du unter[email] und [smtp] auf der Apache Airflow-Website. - Erstelle ein AWS Secrets Manager-Geheimnis für den SMTP-Benutzer und eines für das Passwort. Verwende die Amazon SES-SMTP-Anmeldeinformationen aus Schritt 2. Dann konfiguriere ein Startup-Skript, um die Umgebungsvariablen festzulegen.
Hinweis: Es ist eine bewährte Methode, die SMTP-Anmeldeinformationen in Secrets Manager zu speichern. - Füge das folgende startup.sh-Skript zum Amazon Simple Storage Service (Amazon S3)-Bucket hinzu:
Hinweis: Die Amazon MWAA-Ausführungsrolle muss berechtigt sein, einzelne vertrauliche Werte abzurufen.#!/bin/sh # Get the SMTP username and password from secrets manager username=$(aws secretsmanager get-secret-value --secret-id airflow/variables/smtp.smtp_user --query SecretString --output text) password=$(aws secretsmanager get-secret-value --secret-id airflow/variables/smtp.smtp_password --query SecretString --output text) # Set the SMTP Environment variables with the username and password retrieved from Secrets Manager export AIRFLOW__SMTP__SMTP_USER=$username export AIRFLOW__SMTP__SMTP_PASSWORD=$password # Print the SMTP user echo "SMTP user is $AIRFLOW__SMTP__SMTP_USER" - Führe den Befehl update-environment aus, um die Amazon MWAA-Umgebung mit den E-Mail-Konfigurationsoptionen und dem Amazon S3-Pfad für das Startup-Skript zu aktualisieren.
Hinweis: Wenn du die Umgebung erstellst oder aktualisierst, verwenden die Apache Airflow-Callbacks für Erfolg, Fehlschlag und erneuten Versuch die vorherige Konfiguration. Du kannst Aufgaben mit EmailOperator auch zum Senden von E-Mails verwenden. Weitere Informationen findest du unter airflow.operators.email auf der Apache Airflow-Website.
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 7 Monaten
AWS OFFICIALAktualisiert vor 8 Monaten