如何在定时调度的Glue作业中获取作业运行时间
关于CRON调度的Glue作业获取运行时间的问题
- 可以在CRON调度的Glue作业内部获取运行时间,但Glue并没有默认传递名为
START_TIME的参数。 - 有两种可行的方式获取作业运行时间:
- 调用Glue API获取元数据:借助Glue的
get_job_run接口,结合当前作业的名称和运行ID,就能拿到作业的启动时间。示例代码如下:import boto3 from awsglue.utils import getResolvedOptions import sys args = getResolvedOptions(sys.argv, ["JOB_NAME", "JOB_RUN_ID"]) glue_client = boto3.client('glue') run_details = glue_client.get_job_run( JobName=args['JOB_NAME'], RunId=args['JOB_RUN_ID'] ) start_time = run_details['JobRun']['StartedOn'] print(f"作业启动时间: {start_time}") - 手动配置自定义参数:在CRON调度Glue作业的配置里,手动添加
START_TIME参数,把调度触发的时间作为参数值传入。之后在作业代码里就能通过getResolvedOptions获取到这个值:from awsglue.utils import getResolvedOptions import sys args = getResolvedOptions(sys.argv, ["JOB_NAME", "START_TIME"]) start_time = args['START_TIME'] print(f"调度传递的启动时间: {start_time}")
- 调用Glue API获取元数据:借助Glue的
- 注意:你示例代码里的
START_TIME?写法是错误的,getResolvedOptions的参数名不需要加问号,如果指定的参数不存在,代码会直接抛出异常,所以如果用自定义参数的方式,一定要确保调度配置里已经添加了对应参数。
内容的提问来源于stack exchange,提问作者user3617619
相关产品推荐
相关产品推荐

