आइए देखें कि कैसे एक उपयोगकर्ता AWS ग्लू डेटा कैटलॉग से कई फ़ंक्शन परिभाषाओं का विवरण प्राप्त कर सकता है।
उदाहरण
समस्या कथन: boto3 . का उपयोग करें एडब्ल्यूएस गोंद डेटा कैटलॉग से डेटाबेस में मौजूद कई फ़ंक्शन परिभाषाओं का विवरण प्राप्त करने के लिए पायथन में पुस्तकालय।
इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम
-
चरण 1: आयात करें boto3 और बोटोकोर अपवादों को संभालने के लिए अपवाद।
-
चरण 2: डेटाबेस_नाम और नियमित_पैटर्न वैकल्पिक पैरामीटर हैं। यदि इनके लिए विवरण प्रदान नहीं किया जाता है, तो फ़ंक्शन एडब्ल्यूएस उपयोगकर्ता खाते में मौजूद सभी कार्यों की परिभाषा प्राप्त करता है। अगर डेटाबेस_नाम प्रदान किया जाता है लेकिन नियमित_पैटर्न प्रदान नहीं किया जाता है, तो यह किसी दिए गए डेटाबेस में सभी कार्यों को प्राप्त करता है। यदि दोनों पैरामीटर प्रदान किए जाते हैं, तो यह regular_pattern के अनुसार मिलान किए गए फ़ंक्शन की परिभाषा प्राप्त करता है . अगर केवल नियमित_पैटर्न प्रदान किया जाता है, यह नियमित_पैटर्न . से मेल खाने वाले सभी कार्यों को प्राप्त करता है एडब्ल्यूएस उपयोगकर्ता खाते में मौजूद है
-
चरण 3: boto3 lib . का उपयोग करके AWS सत्र बनाएं . सुनिश्चित करें कि क्षेत्र_नाम डिफ़ॉल्ट प्रोफ़ाइल में उल्लेख किया गया है। यदि इसका उल्लेख नहीं है, तो स्पष्ट रूप से region_name . पास करें सत्र बनाते समय।
-
चरण 4: गोंद . के लिए AWS क्लाइंट बनाएं ।
-
चरण 5: कॉल करें get_multiple_function_definition और डेटाबेस_नाम . पास करें डेटाबेसनाम और नियमित_पैटर्न . के रूप में पैटर्न पैरामीटर के रूप में।
-
चरण 6: यह प्रदान किए गए पैरामीटर के अनुसार कई कार्यों की परिभाषा देता है।
-
चरण 7: फ़ंक्शन की जाँच करते समय कुछ गलत होने पर सामान्य अपवाद को संभालें।
उदाहरण कोड
निम्नलिखित कोड कई कार्यों की परिभाषा प्राप्त करता है -
import boto3 from botocore.exceptions import ClientError def get_multiple_function_definition(database_name =None, regular_pattern = None): session = boto3.session.Session() glue_client = session.client('glue') try: response = glue_client.get_user_defined_functions(DatabaseName=database_name,Pattern= regular_pattern) return response except ClientError as e: raise Exception("boto3 client error in get_multiple_function_definition: " + e.__str__()) except Exception as e: raise Exception("Unexpected error in get_multiple_function_definition: " + e.__str__()) a = get_multiple_function_definition('employee') print(a)
आउटपुट
{ 'UserDefinedFunctions':[{ 'FunctionName': 'insert_employee_record', 'DatabaseName': 'employee', 'ClassName': 'InsertEmployee', 'OwnerName': 'string', 'OwnerType': 'USER'|'ROLE'|'GROUP', 'CreateTime': datetime(2021,03,15), 'ResourceUris':[ { 'ResourceType': 'JAR'|'FILE'|'ARCHIVE', 'Uri': 'string' }, ] }] }