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

所要時間2分
0

Amazon Managed Workflows for Apache Airflow (Amazon MWAA) での有向非巡回グラフ (DAG) タスクからメールを送信するために、Amazon Simple Email Service (Amazon SES) を Simple Mail Transfer Protocol (SMTP) ホストに使用したいです。

解決策

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

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 設定オプションを Amazon MWAA 環境にアタッチします。
  4. 設定オプションに次の値を設定します。
    email.email_backendairflow.utils.email.send_email_smtp に設定します。
    smtp.smtp_hostemail-smtp.region.amazonaws.com に設定します。
    注: region は、お使いの AWS リージョンに置き換えます。
    smtp.smtp_starttlsFalse に設定します。
    smtp.smtp_sslTrue に設定します。
    smtp.smtp_port587 に設定します。
    注: SMTP トラフィックにはポート 587 を使用します。デフォルトでは、AWS はすべての Amazon Elastic Compute Cloud (Amazon EC2) インスタンスからのポート 25 でのアウトバウンド SMTP トラフィックをブロックします。ポート 25 でアウトバウンドトラフィックを送信する場合は、この制限を削除するリクエストを送信してください。
    smtp.smtp_mail_from を、お使いのメールアドレスに設定します。
    注: 上記の設定オプションの詳細については、Apache Airflow のウェブサイトで [email] および [smtp] について参照してください。
  5. AWS Secrets Manager のシークレットを SMTP ユーザー用およびパスワード用に 1 つずつ作成します。ステップ 2 の Amazon SES SMTP 認証情報を使用します。次に起動スクリプトを構成し、環境変数を設定します。
    注: SMTP 認証情報は、Secrets Manager に格納することがベストプラクティスです。
  6. 次の startup.sh スクリプトを Amazon Simple Storage Service (Amazon S3) バケットに追加します。
    #!/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"
    
    注: Amazon MWAA 実行ロールには、個々のシークレット値を取得するためのアクセス許可が必要です。
  7. update-environment コマンドを実行すると、起動スクリプトのメール設定オプションと Amazon S3 パスを使用して Amazon MWAA 環境が更新されます。

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

コメントはありません

関連するコンテンツ