समस्या विवरण - Python में boto3 लाइब्रेरी का उपयोग करके AWS Glue डेटा कैटलॉग से क्लासिफायर का विवरण प्राप्त करें। उदाहरण के लिए, क्लासिफायर 'xml-test' का विवरण प्राप्त करें।
इस समस्या को हल करने का दृष्टिकोण/एल्गोरिदम
चरण 1 - अपवादों को संभालने के लिए boto3 और botocore एक्सेप्शन्स आयात करें।
चरण 2 - पैरामीटर classifier_name पास करें जिसका विवरण चेक करना है।
चरण 3 - boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं। सुनिश्चित करें कि region_name डिफ़ॉल्ट प्रोफ़ाइल में उल्लिखित है। यदि नहीं बताया गया है, तो सत्र बनाते समय region_name को स्पष्ट रूप से पास करें।
चरण 4 - Glue के लिए AWS क्लाइंट बनाएं।
चरण 5 - get_classifier कॉल करें और classifier_name को Name पैरामीटर के रूप में पास करें।
चरण 6 - यह क्लासिफायर का विवरण प्राप्त करेगा।
चरण 7 - जॉब चेक करते समय यदि कुछ गलत हुआ तो सामान्य अपवाद को संभालें।
उदाहरण
AWS Glue डेटा कैटलॉग से क्लासिफायर का विवरण प्राप्त करने के लिए निम्न कोड का उपयोग करें -
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}}