Simplifying AWS Glue Job Failure Notifications with SNS: A Step-by-Step Guide

Saket Jain
5 min readSep 2, 2023

“Concerned about the status of your AWS Glue jobs and tired of constantly monitoring the job console for errors or success? In this tutorial, we’ll walk you through setting up a notification system that will alert you whenever your Glue jobs encounter failures or stop. Say goodbye to constant monitoring and hello to peace of mind.”

We also have the option to receive notifications via email. In this tutorial, we’ll explore various methods to achieve this, with a focus on utilizing EventBridge and SNS (Simple Notification Service) to streamline the notification process.

SNS setup:

Rule Creation (Using EventBridge):

Certainly, here are the steps to set up SNS (Simple Notification Service) and create a rule using EventBridge for your Glue job notifications:

SNS Setup:

1. **Sign in to the AWS Management Console:** Log in to your AWS account.

2. **Navigate to SNS:** Go to the SNS service in the AWS Management Console.

3. **Create a Topic:** Click on “Create topic” to create a new SNS topic. Give it a meaningful name like “Glue_Job_Failure_Notification.”

4. **Add Subscribers (Optional):** You can add subscribers to the topic if you want to receive notifications via email or other delivery methods. Subscribers can be AWS email addresses, SMS endpoints, or other supported protocols.

Enter your email address where you want to get the notification. Confirm the subscription by clicking on the email for confirmation.

5. **Access Policy (Optional):** Configure access policies for your topic to control who can subscribe to or publish messages to it.

6. **Confirm Topic Creation:** Review your settings and create the topic.

For Rule Creation (Using EventBridge):

1. **Navigate to EventBridge:** Go to the EventBridge service in the AWS Management Console.

2. **Create a Rule:** Click on “Create rule” to create a new rule that will trigger actions when a specific event occurs.

3. **Define the Event Source:** Select the event source. In your case, it could be AWS Glue. If Glue is not available as an event source, you can select “Event Source = other” and filter events based on Glue.

4. **Set the Conditions:** Define the conditions that must be met for the rule to trigger. For example, you can specify that the rule should trigger when a Glue job fails.

To create a rule for the Glue service that triggers on job status failure, use the following JSON pattern and paste it into the JSON custom pattern editor:

{
"source": ["aws.glue"],
"detail-type": ["Glue Job State Change"],
"detail": {
"jobName": ["<Name of the job>"],
"state": ["FAILED", "ERROR", "STOPPED"]
}
}

Please note that you have the option to use a prefix to match all jobs starting with a specific prefix, or you can list individual job names as comma-separated values in the ‘Job name’ field.

5. **Choose the Target:** For the target, select “SNS topic” and choose the SNS topic you created earlier (“Glue_Job_Notifications”).

6. **Configure the Rule Details:** Provide a name and description for your rule, and configure any additional settings as needed.

7. **Create the Rule:** Review your settings and create the rule.

Now, when a Glue job event matching your defined conditions occurs, it will trigger the rule, which in turn will send a notification to the SNS topic. Subscribers to the SNS topic will receive these notifications, which can include email alerts if you add email subscribers to the topic.

Please make sure to adjust the specific conditions, event sources, and target configurations to match your Glue job notification requirements.

Hope this was helpful!
Thanks for reading! Please do share the article, if you liked it. Any comments or suggestions are welcome!

References:

--

--