इस लेख में, हम देखेंगे कि कैसे एक उपयोगकर्ता AWS ग्लू डेटा कैटलॉग में क्रॉलर के शेड्यूलर को शुरू कर सकता है।
उदाहरण
AWS ग्लू डेटा कैटलॉग में उपलब्ध क्रॉलर का शेड्यूलर प्रारंभ करें।
समस्या कथन: क्रॉलर का शेड्यूलर शुरू करने के लिए पायथन में boto3 लाइब्रेरी का उपयोग करें।
इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम
-
चरण 1: आयात करें boto3 और बोटोकोर अपवादों को संभालने के लिए अपवाद।
-
चरण 2: क्रॉलर_नाम इस फ़ंक्शन में आवश्यक पैरामीटर है।
-
चरण 3: boto3 lib . का उपयोग करके AWS सत्र बनाएं . सुनिश्चित करें कि क्षेत्र_नाम डिफ़ॉल्ट प्रोफ़ाइल में उल्लेख किया गया है। यदि इसका उल्लेख नहीं है, तो स्पष्ट रूप से region_name . पास करें सत्र बनाते समय।
-
चरण 4: गोंद . के लिए AWS क्लाइंट बनाएं ।
-
चरण 5: अब start_crawler_schedule फ़ंक्शन का उपयोग करें और पैरामीटर पास करें क्रॉलर_नाम क्रॉलरनाम के रूप में।
-
चरण 6: यह प्रतिक्रिया मेटाडेटा देता है और क्रॉलर की शेड्यूल स्थिति को SCHEDULED के रूप में सेट करता है। यदि क्रॉलर की स्थिति चल रही है या शेड्यूल स्थिति पहले से ही शेड्यूल की गई है, तो यह अपवाद फेंकता है - SchedulerRunningException ।
-
चरण 7: क्रॉलर के शेड्यूलर को प्रारंभ करते समय कुछ गलत होने पर सामान्य अपवाद को संभालें।
उदाहरण कोड
निम्न कोड क्रॉलर के शेड्यूलर को प्रारंभ करता है -
import boto3 from botocore.exceptions import ClientError def start_scheduler_of_a_crawler(crawler_name) session = boto3.session.Session() glue_client = session.client('glue') try: response = glue_client.start_crawler_schedule(CrawlerName=crawler_name) return response except ClientError as e: raise Exception("boto3 client error in start_scheduler_of_a_crawler: " + e.__str__()) except Exception as e: raise Exception("Unexpected error in start_scheduler_of_a_crawler: " + e.__str__()) print(start_scheduler_of_a_crawler("Data Dimension"))
आउटपुट
{'ResponseMetadata': {'RequestId': '73e50130-*****************8e', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sun, 28 Mar 2021 07:26:55 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '2', 'connection': 'keep-alive', 'x-amzn-requestid': '73e50130-***************8e'}, 'RetryAttempts': 0}}