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

ใช้ Boto3 เริ่ม Crawler ใน AWS Glue Data Catalog

ภาพรวม

สาธิตการเริ่ม crawler ทันทีโดยใช้ start_crawler ไม่สนใจตารางเวลา

ตัวอย่างโค้ด

import boto3
from botocore.exceptions import ClientError

def start_crawler(crawler_name):
    session = boto3.session.Session()
    glue_client = session.client('glue')
    try:
        response = glue_client.start_crawler(Name=crawler_name)
        return response
    except ClientError as e:
        if e.response['Error']['Code'] == 'CrawlerRunningException':
            return f"Crawler '{crawler_name}' กำลังรันอยู่แล้ว"
        raise Exception(f"boto3 client error: {e}")
    except Exception as e:
        raise Exception(f"Unexpected error: {e}")

# ใช้งาน
print(start_crawler("Data Dimension"))
# เรียกซ้ำขณะ crawler รันอยู่ -> จะได้ CrawlerRunningException

ผลลัพธ์

# ครั้งแรก
{'ResponseMetadata': {'RequestId': '...', 'HTTPStatusCode': 200, ...}}

# ครั้งที่สอง (ขณะรันอยู่)
Exception: boto3 client error: CrawlerRunningException: Crawler with name Data Dimension has already started

ข้อสังเกต

  • รันทันทีครั้งเดียว (on-demand) ไม่เปลี่ยนสถานะ scheduler
  • ถ้า crawler รันอยู่แล้ว จะโยน CrawlerRunningException
  • ต้องมี permission glue:StartCrawler
  • เหมาะสำหรับการ trigger ค้นหาข้อมูลใหม่ทันที