How to use Boto3 to get the list of triggers present in an AWS account

In this article, we will see how to use Boto3 to get the list of all triggers present in an AWS Glue Data Catalog. AWS Glue triggers are used to start jobs or crawlers based on schedules or events.

Prerequisites

Before running this code, ensure you have:

  • AWS credentials configured (via AWS CLI, IAM role, or environment variables)

  • Boto3 library installed: pip install boto3

  • Appropriate IAM permissions for AWS Glue operations

Approach

The solution involves these key steps:

  • Step 1: Import boto3 and botocore exceptions to handle errors

  • Step 2: Create an AWS session using boto3 library

  • Step 3: Create an AWS client for glue service

  • Step 4: Use the list_triggers() function to fetch all triggers

  • Step 5: Handle exceptions appropriately

Basic Implementation

Here's how to list all triggers in your AWS Glue Data Catalog ?

import boto3
from botocore.exceptions import ClientError

def list_of_triggers():
    session = boto3.session.Session()
    glue_client = session.client('glue')
    try:
        triggers = glue_client.list_triggers()
        return triggers
    except ClientError as e:
        raise Exception("boto3 client error in list_of_triggers: " + str(e))
    except Exception as e:
        raise Exception("Unexpected error in list_of_triggers: " + str(e))

# Get and display the triggers
result = list_of_triggers()
print("Trigger Names:")
for trigger_name in result['TriggerNames']:
    print(f"- {trigger_name}")
Trigger Names:
- data-etl-file-passed-to-splitter
- file-passed-to-worker
- file-trigger
- test-daily-jobs
- test-daily-jobs-copy

Advanced Implementation with Filtering

You can also filter triggers by tags or retrieve detailed information ?

import boto3
from botocore.exceptions import ClientError

def list_triggers_with_details():
    """Get detailed information about all triggers"""
    try:
        glue_client = boto3.client('glue')
        
        # Get list of trigger names
        response = glue_client.list_triggers()
        trigger_names = response['TriggerNames']
        
        # Get detailed info for each trigger
        detailed_triggers = []
        for name in trigger_names:
            trigger_detail = glue_client.get_trigger(Name=name)
            detailed_triggers.append({
                'Name': name,
                'Type': trigger_detail['Trigger']['Type'],
                'State': trigger_detail['Trigger']['State']
            })
        
        return detailed_triggers
        
    except ClientError as e:
        print(f"AWS Error: {e}")
        return []
    except Exception as e:
        print(f"Unexpected error: {e}")
        return []

# Display detailed trigger information
triggers = list_triggers_with_details()
for trigger in triggers:
    print(f"Name: {trigger['Name']}, Type: {trigger['Type']}, State: {trigger['State']}")
Name: data-etl-file-passed-to-splitter, Type: CONDITIONAL, State: ACTIVATED
Name: file-passed-to-worker, Type: ON_DEMAND, State: CREATED
Name: file-trigger, Type: SCHEDULED, State: ACTIVATED

Key Parameters

The list_triggers() method supports these optional parameters:

Parameter Description Example
NextToken For pagination NextToken='token123'
DependentJobName Filter by job dependency DependentJobName='my-job'
MaxResults Limit results (1-1000) MaxResults=50
Tags Filter by tags Tags={'Environment':'prod'}

Error Handling

Common errors you might encounter:

  • AccessDeniedException: Insufficient IAM permissions

  • InvalidInputException: Invalid parameter values

  • InternalServiceException: AWS service issues

Conclusion

Using Boto3's list_triggers() method provides an easy way to retrieve all AWS Glue triggers in your account. Combine it with get_trigger() for detailed information and use filtering parameters to narrow down results based on your specific needs.

Updated on: 2026-03-25T18:44:05+05:30

516 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements