メール通知を構成する

このページでは、Cloud Composer 環境用に SMTP サービスを構成する方法について説明します。

始める前に

Cloud Composer 環境がプライベート IP 用に構成されている場合は、外部メールサービス(https://api.sendgrid.com、任意の SMTP サーバーなど)用の API エンドポイントに接続できることを確認してください。

SendGrid メールサービスを構成する

通知を受け取るには、SendGrid メールサービスを介してメールを送信するように環境変数を構成します。

  1. まだ登録していない場合は、Google Cloud Console を介して SendGrid に登録し、API キーを作成します。Google Cloud デベロッパーは、1 か月あたり 12,000 件の無料メールを利用できます。

  2. Cloud Console で、[環境の作成] ページを開きます。

    [環境の作成] ページを開く

  3. [ノード構成] で [環境変数を追加] をクリックします。

  4. 次の環境変数を入力します。

    名前
    SENDGRID_MAIL_FROM From: に指定するメールアドレス(noreply-composer@<your-domain> など)。
    SENDGRID_API_KEY SendGrid API キー。
  5. SendGrid 構成をテストする手順は次のとおりです。

    1. EmailOperator を使用するテスト DAG を作成します。
    2. 環境に DAG をアップロードし、EmailOperator タスクが成功することを確認します。
    3. SendGrid の認証情報を使用して SendGrid にログインします。
    4. SendGrid UI で、[Activity] ページに移動します。
    5. メールのリストを検索します。SendGrid がメールを処理して配信したことを確認します。
    6. メールが処理、配信されていない場合は、次の手順を行います。
      • Sendgrid の構成を確認します。
      • 環境変数の SENDGRID_MAIL_FROMSENDGRID_API_KEY が正しく設定されていることを確認します。
      • メール クライアントのスパムフィルタを確認します。

サードパーティの SMTP サービスを構成する

サードパーティの SMTP サービスを介してメールを送信するには、email_backend Airflow 構成オプションをオーバーライドして、他の SMTP 関連のパラメータを構成します。

サードパーティの SMTP サービスを構成するには、Airflow 構成オプションをオーバーライドします

セクション キー
email email_backend airflow.utils.email.send_email_smtp
smtp smtp_host SMTP サーバーのホスト名。
smtp smtp_user SMTP サーバー上のユーザー名。
smtp smtp_port SMTP サーバーのポート。ポート 25 は使用できません。標準の SMTP ポート 465 や 587 など、他のポートを使用することもできます。
smtp smtp_password smtp_password を介したパスワードの設定はサポートされていません。SMTP パスワードを設定するには、SMTP パスワードを構成するの手順に従ってください。
smtp smtp_mail_from From: に指定するメールアドレス(noreply-composer@ など)。
smtp smtp_starttls セキュリティを強化するには、True に設定します。
smtp smtp_ssl セキュリティを強化するには、True に設定します。

その他の SMTP 構成については、お使いの Airflow リリースの default_airflow.cfg をご覧ください。

サードパーティの SMTP サービスの SMTP パスワードを構成する

Airflow 構成ファイルに書式なしテキストで SMTP パスワードを保存することは、セキュリティ対策として不適切です。そのため、Cloud Composer ではこのメソッドをサポートしていません。代わりに、他の 2 つの方法を使用して SMTP パスワードを構成できます。

コマンドを使って SMTP パスワードを取得する

構成のオーバーライドを使用して、SMTP パスワードを取得するコマンドを指定できます。SMTP サービスと通信するとき、Airflow はこのコマンドを使用してパスワードの値を取得します。

この方法を使用するには、次の Airflow 構成プロパティをオーバーライドします。

セクション キー
smtp smtp_password_cmd SMTP パスワードを返すコマンドを指定します。

Secret Manager に保存されているシークレットを使用して SMTP パスワードを取得する

Secret Manager を Airflow シークレット バックエンドとして構成できます。

Composer 環境の Secret Manager を構成すると、SMTP パスワードを Secret Manager に保存できます。

  1. 新しいシークレットを作成します。

    echo -n "SMTP_PASSWORD" | gcloud beta secrets create \
      airflow-variables-smtp-password \
      --data-file=- \
      --replication-policy=automatic
    

    SMTP_PASSWORD を SMTP パスワードに置き換えます。

  2. Secret Manager から SMTP パスワードを取得するように Airflow を構成します。これを行うには、次の Airflow 構成プロパティをオーバーライドします。

    セクション キー
    smtp smtp_password_secret smtp-password

次のステップ