आइए देखें कि उपयोगकर्ता AWS Glue डेटा कैटलॉग से एकाधिक फ़ंक्शन परिभाषाओं का विवरण कैसे प्राप्त कर सकता है।
उदाहरण
समस्या कथन: AWS Glue डेटा कैटलॉग से डेटाबेस में मौजूद एकाधिक फ़ंक्शन परिभाषाओं का विवरण प्राप्त करने के लिए पायथन में boto3 लाइब्रेरी का उपयोग करें।
इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम
चरण 1: अपवादों को संभालने के लिए boto3 और botocore अपवाद आयात करें।
चरण 2: database_name और regular_pattern वैकल्पिक पैरामीटर हैं। यदि इनके लिए विवरण प्रदान नहीं किए गए हैं, तो फ़ंक्शन AWS उपयोगकर्ता खाते में मौजूद सभी फ़ंक्शन की परिभाषा प्राप्त करता है। यदि database_name प्रदान किया गया है लेकिन regular_pattern प्रदान नहीं किया गया है, तो यह दिए गए डेटाबेस में सभी फ़ंक्शन प्राप्त करता है। यदि दोनों पैरामीटर प्रदान किए गए हैं, तो यह regular_pattern के अनुसार मिलान वाले फ़ंक्शन की परिभाषा प्राप्त करता है। यदि केवल regular_pattern प्रदान किया गया है, तो यह AWS उपयोगकर्ता खाते में मौजूद उन सभी फ़ंक्शन को प्राप्त करता है जो regular_pattern से मेल खाते हैं।
चरण 3: boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं। सुनिश्चित करें कि डिफ़ॉल्ट प्रोफ़ाइल में region_name उल्लिखित है। यदि नहीं, तो सत्र बनाते समय स्पष्ट रूप से region_name पास करें।
चरण 4: glue के लिए AWS क्लाइंट बनाएं।
चरण 5: get_multiple_function_definition को कॉल करें और database_name को DatabaseName और regular_pattern को Pattern पैरामीटर के रूप में पास करें।
चरण 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'
}]
}]
}