ภาพรวม
สาธิตการหยุด crawler ที่กำลังทำงานอยู่ใน AWS Glue โดยใช้ stop_crawler ของ boto3
ตัวอย่างโค้ด
import boto3
from botocore.exceptions import ClientError
def stop_crawler(crawler_name):
session = boto3.session.Session()
glue_client = session.client('glue')
try:
response = glue_client.stop_crawler(Name=crawler_name)
return response
except ClientError as e:
# จัดการกรณี crawler ไม่ได้รันอยู่
if e.response['Error']['Code'] == 'CrawlerNotRunningException':
return f"Crawler '{crawler_name}' ไม่ได้รันอยู่"
raise Exception(f"boto3 client error: {e}")
except Exception as e:
raise Exception(f"Unexpected error: {e}")
# ใช้งาน
print(stop_crawler("Data Dimension"))ผลลัพธ์
{
'ResponseMetadata': {
'RequestId': '73e50130-...',
'HTTPStatusCode': 200,
...
}
}ข้อสังเกต
- ถ้า crawler ไม่ได้รัน จะโยน
CrawlerNotRunningException - ต้องมี permission
glue:StopCrawler - การหยุดเป็น asynchronous อาจใช้เวลาสักครู่