How-to Guide for Amazon Simple Notification Service (Amazon SNS) notifications¶
Introduction¶
Amazon SNS notifier SnsNotifier
allows users to push messages to a SNS Topic using the various on_*_callbacks
at both the DAG level and Task level.
You can also use a notifier with sla_miss_callback
.
Note
When notifiers are used with sla_miss_callback
the context will contain only values passed to the callback,
refer sla_miss_callback.
Example Code:¶
from datetime import datetime
from airflow import DAG
from airflow.operators.bash import BashOperator
from airflow.providers.amazon.aws.notifications.sns import send_sns_notification
dag_failure_sns_notification = send_sns_notification(
aws_conn_id="aws_default",
region_name="eu-west-2",
message="The DAG {{ dag.dag_id }} failed",
target_arn="arn:aws:sns:us-west-2:123456789098:TopicName",
)
task_failure_sns_notification = send_sns_notification(
aws_conn_id="aws_default",
region_name="eu-west-2",
message="The task {{ ti.task_id }} failed",
target_arn="arn:aws:sns:us-west-2:123456789098:AnotherTopicName",
)
with DAG(
dag_id="mydag",
schedule="@once",
start_date=datetime(2023, 1, 1),
on_failure_callback=[dag_failure_sns_notification],
catchup=False,
):
BashOperator(
task_id="mytask",
on_failure_callback=[task_failure_sns_notification],
bash_command="fail",
)