I need to have a slack notification when my pyspark code/ bootstrap fails with the exact reason for failure in EMR.
I am using airflow 2.0, and I am using on_failure_callback=task_fail_slack_alert to notify slack. But it is not notifying. Is my parameter correct?
cluster_creator = EmrCreateJobFlowOperator(task_id='create_job_flow',
job_flow_overrides=JOB_FLOW_OVERRIDES)
step_adder = EmrAddStepsOperator(task_id='add_steps',
job_flow_id="{{ task_instance.xcom_pull(task_ids='create_job_flow', key='return_value') }}",
aws_conn_id='aws_default',
steps=SPARK_STEPS,
on_failure_callback=task_fail_slack_alert)
step_checker = EmrStepSensor(task_id='watch_step',
job_flow_id="{{ task_instance.xcom_pull('create_job_flow', key='return_value') }}",
step_id="{{ task_instance.xcom_pull(task_ids='add_steps', key='return_value')[0] }}",
aws_conn_id='aws_default',on_failure_callback=task_fail_slack_alert,)
cluster_remover = EmrTerminateJobFlowOperator(task_id='remove_cluster',
job_flow_id="{{ task_instance.xcom_pull('create_job_flow', key='return_value') }}",
aws_conn_id='aws_default',
dag=dag
)
I am getting failure notifications, but notexact reason for failure in EMR. How do I get it?
Thanks, Xi