Я пытаюсь выполнить программу, которая отправляет уведомление по электронной почте об успехе, используя on_success_callback. Я добавил следующую функцию в начало скрипта. Задание успешно завершается в Airflow, но уведомление об успехе по электронной почте не получено.Что-то не хватает в функции?
Я пытаюсь выполнить программу, которая отправляет уведомление по электронной почте об успехе, используя on_success_callback. Я добавил следующую функцию в начало скрипта. Задание успешно завершается в Airflow, но уведомление об успехе по электронной почте не получено.[b]Что-то не хватает в функции? [code]from airflow.utils.email import send_email
def email_success(context): subject = f"Job {context['task_instance_key_str']} Completed" html_content = f""" The task {context['task_instance'].task_id}[/b][b] in DAG {context['dag'].dag_id}[/b] completed successfully. """ send_email(to=['xyz@xyz.com'], subject=subject, html_content=html_content)
Следующий тестовый обратный вызов также не отправляет уведомление по электронной почте. Есть ли что-то неправильное?
[code]from airflow import DAG from datetime import datetime, timedelta from airflow.utils.email import send_email from airflow.operators.bash_operator import BashOperator from airflow.operators.python_operator import PythonOperator
def success_email(context): task_instance = context['task_instance'] task_status = 'Success' subject = f'Airflow Task {task_instance.task_id} {task_status}' body = f'The task {task_instance.task_id} completed with status : {task_status}. \n\n'\ f'The task execution date is: {context["execution_date"]}\n'\ f'Log url: {task_instance.log_url}\n\n' to_email = 'xyz@xyz.com' send_email(to = to_email, subject = subject, html_content = body)
def failure_email(context): task_instance = context['task_instance'] task_status = 'Failed' subject = f'Airflow Task {task_instance.task_id} {task_status}' body = f'The task {task_instance.task_id} completed with status : {task_status}. \n\n'\ f'The task execution date is: {context["execution_date"]}\n'\ f'Log url: {task_instance.log_url}\n\n' to_email = 'xyz@xyz.com' send_email(to = to_email, subject = subject, html_content = body)