Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ใช้ Boto3 เริ่ม Scheduler ของ Crawler ใน AWS Glue Data Catalog

ภาพรวม

สาธิตการเปิดใช้งาน 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 ที่รันทันทีครั้งเดียว