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

จะใช้ Boto3 เพื่อรับรายละเอียดของตัวแยกประเภทจากแคตตาล็อก AWS Glue Data ได้อย่างไร


คำชี้แจงปัญหา − ใช้ไลบรารี 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}}