You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Airflow 2.2.4邮件告警失败:无法识别SMTP连接信息

问题描述

在AWS EKS中部署了Airflow 2.2.4(使用官方Helm chart 1.6.0),尝试配置DAG失败时的邮件通知,遇到以下异常:

  1. 已在Helm values文件中配置SMTP基础参数:
config:
  smtp:
    smtp_host: "smtp.gmail.com"
    smtp_starttls: "True"
    smtp_ssl: "False"
    smtp_mail_from: "my.address@gmail.com"
    smtp_port: 587
  1. 配置Airflow使用AWS Secrets Manager作为密钥后端,前缀airflow/connections的密钥会转为Airflow连接。创建了名为airflow/connections/smtp_default的密钥,内容为:
{
  "login": "my.address@gmail.com",
  "password": "blahblahblah"
}
  1. 通过kubectl exec进入调度器Pod执行airflow connections get smtp_default能确认Airflow识别该连接,但日志提示找不到smtp/smtp_user,邮件告警多次失败。进一步测试发现:
    • 连接的login和password字段为None
    • schema字段存储了密钥的部分JSON内容
  2. 该现象与AWS Secrets Manager后端文档示例矛盾,询问是否误解源码或存在其他可能原因。
解决方案与排查方向

1. 修正AWS Secrets Manager密钥格式

Airflow的AWS Secrets Manager后端对连接类密钥有严格格式要求,不能仅用JSON键值对存储login/password,必须包含必填的conn_type字段,正确格式如下:

{
  "conn_type": "smtp",
  "login": "my.address@gmail.com",
  "password": "blahblahblah",
  "host": "smtp.gmail.com",
  "port": 587
}

或者直接存储Airflow连接URI字符串:

smtp://my.address@gmail.com:blahblahblah@smtp.gmail.com:587

注:Airflow 2.x的Secrets Manager后端会优先解析conn_type字段,如果缺失,会将整个JSON内容当作URI字符串处理,导致schema字段被错误填充,login/password无法正确提取。

2. 统一SMTP配置优先级

Airflow的SMTP配置存在优先级冲突风险:

  • 建议将所有SMTP参数统一放到smtp_default连接中,去掉values中的config.smtp配置,避免混合配置导致解析异常
  • 若保留values中的基础配置,需确保连接中的参数能覆盖全局配置项

3. 验证Secrets Manager后端配置

确认Helm values中Secrets Manager的配置格式正确,特别是backend_kwargs需为JSON字符串:

airflow:
  config:
    secrets:
      backend: airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend
      backend_kwargs: '{"connections_prefix": "airflow/connections"}'

4. 检查Gmail SMTP特殊要求

若使用Gmail SMTP,需确认:

  • 未启用2FA时,已开启“低安全性应用访问”;启用2FA时,需使用应用专用密码而非账户密码
  • Secrets Manager中存储的密码为正确的应用专用密码

5. 查看调度器详细日志

通过kubectl logs <scheduler-pod-name>搜索smtp_default或SecretsManagerBackend相关日志,确认密钥加载、解析过程是否有格式错误或权限报错。

内容的提问来源于stack exchange,提问作者user4601931

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 09:35:27