AWS re:Postを使用することにより、以下に同意したことになります AWS re:Post 利用規約

Amazon MWAA DAG タスクからメールを送信するための SMTP ホストとして Amazon SES を使用する方法を教えてください。

所要時間2分
0

Amazon Simple Email Service (Amazon SES) を SMTP ホストとして使用して、Amazon Managed Workflows for Apache Airflow (Amazon MWAA) DAG タスクからメールを送信したいです。

解決策

Amazon SES を SMTP ホストとして使用して Amazon MWAA DAG タスクからメールを送信するには、次のステップを実行します。

  1. Amazon SES を使用してメール送信を設定します

  2. Amazon MWAA でメールを送信するための Amazon SES SMTP 認証情報を作成します。
    注: SMTP インターフェイスの認証情報は、AWS Identity Access and Management (IAM) を使用して SMTP ユーザー用に作成するアクセスキーとは異なります。

  3. Apache Airflow 設定オプションを環境にアタッチします。

  4. 設定オプションに次の値を設定します。
    email.email_backendairflow.utils.email.send_email_smtp に設定します。Apache Airflow のウェブサイトで email_backend を参照してください。
    smtp.smtp_host を **email-smtp.region.**amazonaws.com に設定します。region は、お使いの AWS リージョンに置き換えてください。Apache Airflow のウェブサイトで smtp_host を参照してください。
    smtp.smtp_starttlsFalse に設定します。Apache Airflow のウェブサイトで smtp_starttls を参照してください。
    smtp.smtp_sslTrue に設定します。Apache Airflow のウェブサイトで smtp_ssl を参照してください。
    smtp.smtp_port587 に設定します。Apache Airflow のウェブサイトで smtp_port を参照してください。
    注: SMTP トラフィックにはポート 587 を使用します。デフォルトでは、AWS はすべての Amazon Elastic Compute Cloud (Amazon EC2) インスタンスからのポート 25 のアウトバウンド SMTP トラフィックをブロックします。ポート 25 でアウトバウンドトラフィックを送信する場合は、この制限を削除するようリクエストしてください。
    smtp.smtp_mail_from を、お使いのメールアドレスに設定します。Apache Airflow のウェブサイトで smtp_mail_from を参照してください。

  5. Amazon SES SMTP 認証情報を使用して、設定オプション smtp.smtp_usersmtp.smtp_password をプレーンテキストで追加します。
    注: SMTP 認証情報を AWS シークレットマネージャーに格納するのがベストプラクティスです。

  6. SMTP ユーザーとパスワード用の Secrets Manager シークレットを作成します。起動スクリプトを使用して環境変数を設定します。

  7. 次の startup.sh スクリプトを Apache Airflow Amazon Simple Storage Service (Amazon S3) バケットに追加します。
    注: Amazon MWAA 実行ロールには、個々のシークレット値を取得するためのアクセス許可が必要です。

    #!/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"
  8. 前述のメール設定オプションと起動スクリプトの Amazon S3 パスを使用して Amazon MWAA 環境を更新します。

注: 環境を作成または更新すると、成功、失敗、再試行に対し、Apache Airflow コールバックは上記の設定を使用します。EmailOperator でタスクを使用してメールを送信することもできます。詳細については、Apache Airflow のウェブサイトで airflow.operators.email を参照してください。

コメントはありません

関連するコンテンツ