समस्या का विवरण - एक निर्दिष्ट क्रॉलर के मेट्रिक्स को पुनः प्राप्त करने के लिए पायथन में boto3 लाइब्रेरी का उपयोग करें।
उदाहरण - एक निर्दिष्ट क्रॉलर, क्रॉलर_फॉर_एस3_फाइल_जॉब के मेट्रिक्स को पुनः प्राप्त करें।
इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम
चरण 1 - अपवादों को संभालने के लिए boto3 और botocore अपवाद आयात करें।
चरण 2 - क्रॉलर_नाम अनिवार्य पैरामीटर है। यह एक सूची है ताकि उपयोगकर्ता एक समय में एक या कई क्रॉलर नाम मेट्रिक लाने के लिए भेज सकें।
चरण 3 - boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं। सुनिश्चित करें कि क्षेत्र_नाम डिफ़ॉल्ट प्रोफ़ाइल में उल्लेख किया गया है। यदि इसका उल्लेख नहीं है, तो स्पष्ट रूप से region_name . पास करें सत्र बनाते समय।
चरण 4 - गोंद के लिए AWS क्लाइंट बनाएं।
चरण 5 − अब get_crawler_metrics का उपयोग करें कार्य करें और क्रॉलर_नाम और क्रॉलरनामसूची पैरामीटर पास करें।
चरण 6 - यह क्रॉलर के मेट्रिक लौटाता है।
चरण 7 - कार्य की जाँच करते समय कुछ गलत होने पर सामान्य अपवाद को संभालें।
उदाहरण
किसी निर्दिष्ट क्रॉलर की मीट्रिक पुनः प्राप्त करने के लिए निम्न कोड का उपयोग करें -
import boto3 from botocore.exceptions import ClientError def retrieves_metrics_of_a_crawler(crawler_names:list) session = boto3.session.Session() glue_client = session.client('glue') try: crawler_details = glue_client.get_crawler_metrics(CrawlerNameList = crawler_names) return crawler_details except ClientError as e: raise Exception("boto3 client error in retrieves_metrics_of_a_crawler: " + e.__str__()) except Exception as e: raise Exception("Unexpected error in retrieves_metrics_of_a_crawler: " + e.__str__()) print(retrieves_metrics_of_a_crawler(["crawler_for_s3_file_job"]))
आउटपुट
{'CrawlerMetricsList': [{'CrawlerName': crawler_for_s3_file_job, 'TimeLeftSeconds': 0.0, 'StillEstimating': False, 'LastRuntimeSeconds': 79.673, 'MedianRuntimeSeconds': 79.673, 'TablesCreated': 1, 'TablesUpdated': 0, 'TablesDeleted': 0}], 'ResponseMetadata': {'RequestId': '680cf4ca-********0abe', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sun, 28 Feb 2021 11:38:08 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '216', 'connection': 'keep-alive', 'x-amzn-requestid': '680cf4ca-******************0abe'}, 'RetryAttempts': 0}}