आइए देखें कि उपयोगकर्ता AWS Glue डेटा कैटलॉग से निर्दिष्ट फ़ंक्शन परिभाषा का विवरण कैसे प्राप्त कर सकता है।
उदाहरण
insert_employee_record नामक फ़ंक्शन परिभाषा का विवरण employee डेटाबेस में प्राप्त करें।
समस्या कथन: AWS Glue डेटा कैटलॉग से निर्दिष्ट फ़ंक्शन परिभाषा का विवरण प्राप्त करने के लिए पायथन में boto3 लाइब्रेरी का उपयोग करें।
इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम
चरण 1: अपवादों को संभालने के लिए boto3 और botocore अपवाद आयात करें।
चरण 2: database_name और function_name आवश्यक पैरामीटर हैं। यह दिए गए डेटाबेस में दिए गए function_name की परिभाषा प्राप्त करता है।
चरण 3: boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं। सुनिश्चित करें कि डिफ़ॉल्ट प्रोफ़ाइल में region_name उल्लिखित है। यदि नहीं, तो सत्र बनाते समय स्पष्ट रूप से region_name पास करें।
चरण 4: glue के लिए AWS क्लाइंट बनाएं।
चरण 5: get_user_defined_function को कॉल करें और database_name को DatabaseName और function_name को FunctionName पैरामीटर के रूप में पास करें।
चरण 6: यह दिए गए फ़ंक्शन की परिभाषा लौटाता है। यदि यह दिए गए फ़ंक्शन को नहीं ढूंढता है, तो यह एक त्रुटि फेंकता है।
चरण 7: फ़ंक्शन की जांच करते समय यदि कुछ गलत हुआ तो सामान्य अपवाद को संभालें।
उदाहरण कोड
निम्न कोड दिए गए फ़ंक्शन की परिभाषा प्राप्त करता है -
import boto3
from botocore.exceptions import ClientError
def get_function_definition(database_name, function_name):
session = boto3.session.Session()
glue_client = session.client('glue')
try:
response = glue_client.get_user_defined_function(DatabaseName=database_name, FunctionName=function_name)
return response
except ClientError as e:
raise Exception("boto3 client error in get_function_definition: " + e.__str__())
except Exception as e:
raise Exception("Unexpected error in get_function_definition: " + e.__str__())
a = get_function_definition('employee', 'insert_employee_record')
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'
}]
}
}