Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for Apache Airflow™
  • Начало работы
    • Все руководства
      • Настройка SMTP-сервера для отправки уведомлений по электронной почте
      • Отправка запросов к API Yandex Cloud через Yandex Cloud Python SDK
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Yandex Monitoring
  • История изменений
  • Вопросы и ответы

В этой статье:

  • Подготовьте инфраструктуру
  • Необходимые платные ресурсы
  • Создайте секрет Yandex Lockbox
  • Подготовьте DAG-файл и запустите граф
  • Проверьте результат
  • Удалите созданные ресурсы
  1. Практические руководства
  2. Другие руководства
  3. Настройка SMTP-сервера для отправки уведомлений по электронной почте

Настройка SMTP-сервера для отправки уведомлений по электронной почте

Статья создана
Yandex Cloud
Обновлена 21 марта 2025 г.
  • Подготовьте инфраструктуру
    • Необходимые платные ресурсы
  • Создайте секрет Yandex Lockbox
  • Подготовьте DAG-файл и запустите граф
  • Проверьте результат
  • Удалите созданные ресурсы

Вы может настроить SMTP-сервер для отправки уведомлений по электронной почте с помощью направленного ациклического графа (DAG). Данные для подключения к БД хранятся в Yandex Lockbox и автоматически подставляются в граф.

Чтобы реализовать настройку SMTP-сервера для отправки уведомлений по электронной почте:

  1. Подготовьте инфраструктуру.
  2. Создайте секрет Yandex Lockbox.
  3. Подготовьте DAG-файл и запустите граф.
  4. Проверьте результат.

Если созданные ресурсы вам больше не нужны, удалите их.

Подготовьте инфраструктуруПодготовьте инфраструктуру

  1. Создайте сервисный аккаунт airflow-sa с ролями:

    • managed-airflow.integrationProvider;
    • lockbox.payloadViewer.

    Роль lockbox.payloadViewer не обязательно выдавать на весь каталог. Достаточно назначить ее на конкретный секрет Yandex Lockbox после его создания.

  2. Создайте бакет Object Storage с произвольными настройками.

  3. Отредактируйте ACL созданного бакета так, чтобы у сервисного аккаунта airflow-sa было разрешение READ.

  4. Создайте кластер Managed Service for Apache Airflow™ с параметрами:

    • Сервисный аккаунт — airflow-sa;
    • Имя бакета — имя созданного бакета;
    • Использовать Lockbox Secret Backend — убедитесь, что эта опция включена.

    В блоке Конфигурация Airflow задайте дополнительные свойства Apache Airflow™ для настройки SMTP-сервера:

    Ключ Значение
    smtp.smtp_host smtp.yandex.ru
    smtp.smtp_port 465
    smtp.smtp_starttls False
    smtp.smtp_ssl True
    smtp.smtp_mail_from user@yandex.ru

    Заполните поля вручную или загрузите конфигурацию из файла (см. пример конфигурационного файла).

Необходимые платные ресурсыНеобходимые платные ресурсы

В стоимость поддержки описываемого решения входят:

  • Плата за кластер Managed Service for Apache Airflow™: использование вычислительных ресурсов, выделенных хостам, и дискового пространства (см. тарифы Managed Service for Apache Airflow™).
  • Плата за использование публичных IP-адресов, если для хостов кластера включен публичный доступ (см. тарифы Virtual Private Cloud).
  • Плата за бакет Object Storage: хранение данных и выполнение операций с ними (см. тарифы Object Storage).
  • Плата за Yandex Lockbox: хранение секретов (см. тарифы Yandex Lockbox).

Создайте секрет Yandex LockboxСоздайте секрет Yandex Lockbox

Создайте секрет Yandex Lockbox с именем airflow/connections/smtp_default и содержимым json.dumps(conn), где conn — подключение к SMTP-серверу.

conn = {
         "conn_type": "smtp",
         "login": "user@yandex.ru",
         "password": "<пароль_для_внешних_приложений>"
}

В секрете airflow/connections/smtp_default будут сохранены данные для подключения к SMTP-серверу.

Подготовьте DAG-файл и запустите графПодготовьте DAG-файл и запустите граф

  1. Создайте локально файл с именем test_smtp_notification.py и скопируйте в него скрипт:

    from airflow.decorators import dag, task
    
    default_args = {
     "email": ["user@yandex.ru"],
     "email_on_failure": True,
     "email_on_retry": True
    }
    
    
    @dag(schedule=None, default_args=default_args)
    def test_smtp_notification():
        @task
        def failing_task():
            raise RuntimeError("some test error")
    
        failing_task()
    
    
    test_smtp_notification()
    
  2. Загрузите DAG-файл test_smtp_notification.py в созданный ранее бакет. В результате одноименный граф появится в веб-интерфейсе Apache Airflow™ автоматически.

  3. Откройте веб-интерфейс Apache Airflow™.

  4. Убедитесь, что в разделе DAGs появился новый граф test_smtp_notification.

    Загрузка DAG-файла из бакета может занять несколько минут.

  5. Чтобы запустить граф, в строке с его именем нажмите кнопку image.

Проверьте результатПроверьте результат

Чтобы проверить результат в веб-интерфейсе Apache Airflow™:

  1. В разделе DAGs откройте граф test_smtp_notification.
  2. Перейдите в раздел Graph.
  3. Выберите задание failing_task.
  4. Перейдите в раздел Logs.
  5. Убедитесь, что в логах отсутствует строка some test error. Это значит, что запрос выполнен успешно.

Удалите созданные ресурсыУдалите созданные ресурсы

Некоторые ресурсы платные. Удалите ресурсы, которые вы больше не будете использовать, чтобы не платить за них:

  1. Сервисный аккаунт.
  2. Бакет Object Storage.
  3. Кластер Managed Service for Apache Airflow™.
  4. Секрет Yandex Lockbox.

Была ли статья полезна?

Предыдущая
Yandex Query: автоматизация задач
Следующая
Отправка запросов к API Yandex Cloud через Yandex Cloud Python SDK
Проект Яндекса
© 2025 ООО «Яндекс.Облако»