ภาพรวม
สาธิตการเริ่ม 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 ค้นหาข้อมูลใหม่ทันที