คำชี้แจงปัญหา − ใช้ไลบรารี boto3 ใน Python เพื่อรับรายละเอียดของตัวแยกประเภทจากแคตตาล็อก AWS Glue Data ตัวอย่างเช่น รับรายละเอียดของตัวแยกประเภท – 'xml-test'
แนวทาง/อัลกอริทึมในการแก้ปัญหานี้
ขั้นตอนที่ 1 - นำเข้าข้อยกเว้น boto3 และ botocore เพื่อจัดการกับข้อยกเว้น
ขั้นตอนที่ 2 − ส่งพารามิเตอร์ classifier_name ซึ่งต้องตรวจสอบรายละเอียด
ขั้นตอนที่ 3 − สร้างเซสชัน AWS โดยใช้ไลบรารี boto3 ตรวจสอบให้แน่ใจว่ามีการกล่าวถึง region_name ในโปรไฟล์เริ่มต้น หากไม่มีการระบุ ให้ส่ง region_name อย่างชัดเจนขณะสร้างเซสชัน
ขั้นตอนที่ 4 − สร้างไคลเอนต์ AWS สำหรับกาว
ขั้นตอนที่ 5 − โทร get_classifier และส่งผ่าน ชื่อตัวแยกประเภท เป็นพารามิเตอร์ชื่อ
ขั้นตอนที่ 6 − มันจะดึงรายละเอียดของตัวแยกประเภท
ขั้นตอนที่ 7 − จัดการข้อยกเว้นทั่วไปหากมีข้อผิดพลาดขณะตรวจสอบงาน
ตัวอย่าง
ใช้รหัสต่อไปนี้เพื่อรับรายละเอียดของตัวแยกประเภทจากแคตตาล็อก AWS Glue Data –
import boto3 from botocore.exceptions import ClientError def get_classifier_details(classifier_name): session = boto3.session.Session() glue_client = session.client('glue') try: response = glue_client.get_classifier(Name = classifier_name) return response except ClientError as e: raise Exception( "boto3 client error in get_classifier_details: " + e.__str__()) except Exception as e: raise Exception( "Unexpected error in get_classifier_details: " + e.__str__()) print(get_classifier_details("xml-test"))
ผลลัพธ์
{'Classifier': {'GrokClassifier': {'Name': 'xml-test', 'Classification': 'xml', 'CreationTime': datetime.datetime(2018, 6, 21, 4, 7, 4, tzinfo=tzlocal()), 'LastUpdated': datetime.datetime(2018, 6, 21, 4, 7, 11, tzinfo=tzlocal()), 'Version': 2, 'GrokPattern': 'SYSLOGTIMESTAMP %{MONTH} +%{MONTHDAY} %{TIME}'}}, 'ResponseMetadata': {'RequestId': 'c291cce2-………………..-3552077ddefd', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sun, 21 Feb 2021 07:58:09 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '218', 'connection': 'keep-alive', 'x-amzn-requestid': 'c291cce2-……….-3552077ddefd'}, 'RetryAttempts': 0}}