如何通过SDK导出AWS Glue作业监控的作业运行表(无需逐一遍历)
导出AWS Glue作业运行记录的两种方案
一、控制台直接导出(零代码)
- 登录AWS控制台,进入Glue服务页面
- 左侧导航栏选择作业运行监控,在页面顶部设置目标日期范围(比如最近1天)
- 表格加载完成后,点击右上角的导出按钮,直接下载CSV格式的运行记录文件
二、用AWS SDK/CLI批量获取(无需遍历作业)
如果需要程序化获取数据,不用逐个遍历Glue作业,推荐通过AWS CloudTrail的事件查询实现:
CloudTrail会自动记录所有Glue作业的启动、状态变更等事件,直接查询这些事件就能拿到全量运行记录,无需先列出所有作业再逐个拉取运行日志。
Python(boto3)示例
import boto3 import json from datetime import datetime, timedelta cloudtrail = boto3.client('cloudtrail') # 定义查询时间范围(示例:最近24小时) start_dt = datetime.utcnow() - timedelta(hours=24) end_dt = datetime.utcnow() # 查询Glue作业启动事件 response = cloudtrail.lookup_events( StartTime=start_dt, EndTime=end_dt, LookupAttributes=[ {'AttributeKey': 'EventSource', 'AttributeValue': 'glue.amazonaws.com'}, {'AttributeKey': 'EventName', 'AttributeValue': 'StartJobRun'} ], MaxResults=100 ) # 解析并提取关键信息 for event in response['Events']: event_data = json.loads(event['CloudTrailEvent']) job_name = event_data['requestParameters']['jobName'] run_id = event_data['responseElements']['jobRunId'] status = event_data['responseElements']['jobRunState'] print(f"作业名: {job_name}, 运行ID: {run_id}, 当前状态: {status}")
AWS CLI示例
# 查询最近1天的Glue作业启动事件,输出JSON格式结果 aws cloudtrail lookup-events \ --start-time $(date -u -d "1 day ago" +%Y-%m-%dT%H:%M:%SZ) \ --end-time $(date -u +%Y-%m-%dT%H:%M:%SZ) \ --lookup-attributes AttributeKey=EventSource,AttributeValue=glue.amazonaws.com AttributeKey=EventName,AttributeValue=StartJobRun \ --output json
如果需要追踪作业运行的完整状态变更(比如从启动到成功/失败),只需将上述代码中的EventName替换为JobRunStateChanged即可。
内容的提问来源于stack exchange,提问作者ivan
相关产品推荐
相关产品推荐

