ภาพรวม
สาธิตการเปิดใช้งาน scheduler ของ crawler โดยใช้ start_crawler_schedule ทำให้ crawler รันตามตารางเวลาที่ตั้งไว้
ตัวอย่างโค้ด
import boto3
from botocore.exceptions import ClientError
def start_crawler_scheduler(crawler_name):
session = boto3.session.Session()
glue_client = session.client('glue')
try:
response = glue_client.start_crawler_schedule(CrawlerName=crawler_name)
return response
except ClientError as e:
if e.response['Error']['Code'] == 'SchedulerRunningException':
return f"Scheduler ของ '{crawler_name}' ทำงานอยู่แล้ว"
raise Exception(f"boto3 client error: {e}")
except Exception as e:
raise Exception(f"Unexpected error: {e}")
# ใช้งาน
print(start_crawler_scheduler("Data Dimension"))ผลลัพธ์
{
'ResponseMetadata': {
'RequestId': '73e50130-...',
'HTTPStatusCode': 200,
...
}
}ข้อสังเกต
- ตั้งค่า schedule state เป็น SCHEDULED
- ถ้า crawler กำลังรัน หรือ scheduler ทำงานอยู่แล้ว จะโยน
SchedulerRunningException - ต้องมี permission
glue:StartCrawlerSchedule - แตกต่างจาก
start_crawlerที่รันทันทีครั้งเดียว