如何在AWS Lambda中设置停止Glue任务后延迟启动新任务?
在AWS Lambda中添加Glue任务停止与启动的延迟
要在停止Glue任务和启动新任务之间添加至少5秒的延迟,只需引入Python标准库的time模块,调用time.sleep()函数即可,具体修改如下:
修改后的完整代码
import boto3 import json import time # 导入time模块 def lambda_handler(event, context): client = boto3.client('glue') body = json.loads(event['body']) job_id_to_stop = body['job_id_to_stop'] job_to_start_argument = body['job_to_start_argument'] # 停止指定Glue任务 client.batch_stop_job_run( JobName='job-to-stop', JobRunIds=[ job_id_to_stop ] ) # 添加5秒延迟 time.sleep(5) # 启动新的Glue任务 client.start_job_run( JobName = 'job-to-start', Arguments = { '--job_to_start_argument': job_to_start_argument } ) return { "statusCode": 200, "headers": { "Content-Type": "application/json" }, "body": "Success" }
关键说明
time是Python标准库模块,Lambda环境默认支持,无需额外安装依赖。time.sleep(5)会让Lambda函数暂停执行5秒,若需要更长延迟,直接修改括号内的数值(单位为秒)即可。- Lambda默认执行时间配额为15分钟,只要总执行时间不超过该配额,这种延迟方式完全可行。
内容的提问来源于stack exchange,提问作者JZnrgn
相关产品推荐
相关产品推荐

