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 Simple Mail Transfer Protocol (SMTP)-Host verwenden, um E-Mails von einer Directed Acyclic Graph (DAG)-Aufgabe in Amazon Managed Workflows für Apache Airflow (Amazon MWAA) zu senden.
Lösung
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 Anmeldeinformationen für Amazon SES SMTP, 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 SMTP-Benutzer erstellst. - Füge die Apache-Airflow-Konfigurationsoptionen an die Amazon-MWAA-Umgebung an.
- Stelle die folgenden Werte für die Konfigurationsoptionen ein:
Stelle email.email_backend auf airflow.utils.email.send_email_smtp ein.
Stelle smtp.smtp_host auf email-smtp.region.amazonaws.com ein.
Hinweis: Ersetze region durch deine AWS-Region.
Stelle smtp.smtp_starttls auf Wahr ein.
Stelle smtp.smtp_ssl auf Falsch ein.
Stelle smtp.smtp_port auf 587 ein.
Hinweis: Verwende Port 587 für SMTP-Datenverkehr. Standardmäßig blockiert AWS den ausgehenden SMTP-Datenverkehr auf Port 25 von allen Amazon Elastic Compute Cloud (Amazon EC2)-Instances. Um ausgehenden Datenverkehr auf Port 25 zu senden, sende eine Anforderung ab, um die Beschränkung aufzuheben.
Stelle smtp.smtp_mail_from auf die E-Mail-Adresse ein.
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. Konfiguriere anschließend ein Startskript, um die Umgebungsvariablen festzulegen.
Hinweis: Es hat sich bewährt, 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 folgenden Befehl update-environment aus, um die Amazon-MWAA-Umgebung mit den E-Mail-Konfigurationsoptionen und dem Amazon-S3-Pfad für das Startskript zu aktualisieren:
Hinweis: Ersetzeenvironment_name durch deinen Umgebungsnamen und s3_path_for_startup_script durch den S3-Pfad für dein Startskript.aws mwaa update-environment --name environment_name --startup-script-s3-path s3_path_for_startup_script
Wenn du die Umgebung erstellst oder aktualisierst, verwenden die Apache Airflow-Rückrufe 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.providers.smtp.operators.smtp auf der Apache-Airflow-Website.
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor einem Jahr