समस्या का विवरण - एडब्ल्यूएस ग्लू डेटा कैटलॉग में मौजूद सभी कनेक्शन का विवरण प्राप्त करने के लिए पायथन में boto3 लाइब्रेरी का उपयोग करें।
उदाहरण - सभी कनेक्शन परिभाषा का विवरण प्राप्त करें।
इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम
चरण 1 - अपवादों को संभालने के लिए boto3 और botocore अपवाद आयात करें।
चरण 2 - कोई पैरामीटर नहीं है।
चरण 3 - boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं। सुनिश्चित करें कि क्षेत्र_नाम डिफ़ॉल्ट प्रोफ़ाइल में उल्लेख किया गया है। यदि इसका उल्लेख नहीं है, तो स्पष्ट रूप से region_name . पास करें सत्र बनाते समय।
चरण 4 - गोंद के लिए AWS क्लाइंट बनाएं।
चरण 5 − get_connections पर कॉल करें समारोह।
चरण 6 - यह एडब्ल्यूएस ग्लू डेटा कैटलॉग से कनेक्शन परिभाषा का विवरण प्राप्त करेगा।
चरण 7 - कार्य की जाँच करते समय कुछ गलत होने पर सामान्य अपवाद को संभालें।
उदाहरण
एडब्ल्यूएस गोंद डेटा कैटलॉग में सभी कनेक्शनों की परिभाषा प्राप्त करने के लिए निम्नलिखित कोड का उपयोग करें -
import boto3 from botocore.exceptions import ClientError def get_details_of_all_connections(): session = boto3.session.Session() glue_client = session.client('glue') try: response = glue_client.get_connections() return response except ClientError as e: raise Exception("boto3 client error in get_details_of_all_connections: " + e.__str__()) except Exception as e: raise Exception("Unexpected error in get_details_of_all_connections: " + e.__str__()) print(get_details_of_all_connections())
आउटपुट
{'ConnectionList': [ {'Name': '01_Daily', 'Description': '', 'ConnectionType': 'JDBC', 'ConnectionProperties': {'JDBC_CONNECTION_URL': 'jdbc:redshift://**********.us-east-1.redshift.amazonaws.com:5439/abc', 'JDBC_ENFORCE_SSL': 'false', 'PASSWORD': '!*******', 'USERNAME': '********'}, 'PhysicalConnectionRequirements': {'SubnetId': 'subneta******e', 'SecurityGroupIdList': ['sg-********3'], 'AvailabilityZone': 'us-east-1a'}, 'CreationTime': datetime.datetime(2020, 12, 11, 17, 1, 51, 519000, tzinfo=tzlocal()), 'LastUpdatedTime': datetime.datetime(2020, 12, 11, 17, 1, 51, 519000, tzinfo=tzlocal())}, {'Name': 'aurora-poc', 'ConnectionType': 'JDBC', 'ConnectionProperties': {'JDBC_CONNECTION_URL': 'jdbc:postgresql://**********-cluster.clustercv********6p.us-east-1.rds.amazonaws.com:5432/*******, 'JDBC_ENFORCE_SSL': 'false', 'PASSWORD': '******', 'USERNAME': user'}, 'PhysicalConnectionRequirements': {'SubnetId': 'subnet-35******e', 'SecurityGroupIdList': ['sg-*******d', 'sg-0***********'], 'AvailabilityZone': 'us-east-1c'}, 'CreationTime': datetime.datetime(2020, 11, 18, 12, 38, 29, 625000, tzinfo=tzlocal()), 'LastUpdatedTime': datetime.datetime(2020, 11, 18, 12, 51, 16, 59000, tzinfo=tzlocal())}, {'Name': 'dev-ods', 'ConnectionType': 'JDBC', 'ConnectionProperties': {'JDBC_CONNECTION_URL': 'jdbc:postgresql://*****************.us-east1.rds.amazonaws.com:5432/store', 'JDBC_ENFORCE_SSL': 'false', 'PASSWORD': '***********', 'USERNAME': user'}, 'PhysicalConnectionRequirements': {'SubnetId': 'subnet-a********', 'SecurityGroupIdList': ['sg-*********b7', 'sg-a8********e'], 'AvailabilityZone': 'us-east-1a'}, 'CreationTime': datetime.datetime(2020, 5, 27, 3, 10, 24, 538000, tzinfo=tzlocal()), 'LastUpdatedTime': datetime.datetime(2021, 2, 26, 5, 50, 53, 991000, tzinfo=tzlocal())},], 'ResponseMetadata': {'RequestId': '58bae80d-*******************87', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sun, 28 Feb 2021 11:21:55 GMT', 'content-type': 'application/x-amz-json-1.1', 'contentlength': '11568', 'connection': 'keep-alive', 'x-amzn-requestid': '58bae80d-************************87'}, 'RetryAttempts': 0}}