समस्या विवरण - Python में boto3 लाइब्रेरी का उपयोग करके AWS Glue डेटा कैटलॉग में मौजूद कनेक्शन का विवरण प्राप्त करें।
उदाहरण - कनेक्शन परिभाषा, 'aurora-test' का विवरण प्राप्त करें।
इस समस्या को हल करने का दृष्टिकोण/एल्गोरिदम
चरण 1 - अपवादों को संभालने के लिए boto3 और botocore एक्सेप्शन्स आयात करें।
चरण 2 - पैरामीटर connection_name पास करें जिसकी परिभाषा चेक करने की आवश्यकता है।
चरण 3 - boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं। सुनिश्चित करें कि region_name डिफ़ॉल्ट प्रोफ़ाइल में उल्लिखित है। यदि नहीं बताया गया है, तो सत्र बनाते समय region_name को स्पष्ट रूप से पास करें।
चरण 4 - Glue के लिए AWS क्लाइंट बनाएं।
चरण 5 - get_connection फंक्शन को कॉल करें और connection_name को Name पैरामीटर के रूप में पास करें।
चरण 6 - यह AWS Glue डेटा कैटलॉग से कनेक्शन परिभाषा का विवरण प्राप्त करेगा।
चरण 7 - जॉब चेक करते समय यदि कुछ गलत हुआ तो सामान्य अपवाद को संभालें।
उदाहरण
AWS Glue डेटा कैटलॉग में कनेक्शन की परिभाषा प्राप्त करने के लिए निम्न कोड का उपयोग करें -
import boto3 from botocore.exceptions import ClientError def get_details_of_a_connection(connection_name): session = boto3.session.Session() glue_client = session.client('glue') try: response = glue_client.get_connection(Name=connection_name) return response except ClientError as e: raise Exception("boto3 client error in get_details_of_a_connection: " + e.__str__()) except Exception as e: raise Exception("Unexpected error in get_details_of_a_connection: " + e.__str__()) print(get_details_of_a_connection("aurora-poc"))आउटपुट
{'Connection': {'Name': 'aurora-poc', 'ConnectionType': 'JDBC', 'ConnectionProperties': {'JDBC_CONNECTION_URL': 'jdbc:postgresql://abcpostgresql-cluster.cluster-abc.us-east-1.rds.amazonaws.com:0132/abc', 'JDBC_ENFORCE_SSL': 'false', 'PASSWORD': '******', 'USERNAME': 'abc***'}, 'PhysicalConnectionRequirements': {'SubnetId': 'subnet351*****', 'SecurityGroupIdList': ['sg-caa******', 'sg-*************'], '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())}, 'ResponseMetadata': {'RequestId': '6f13524b-4175-454b-bc60-c7f408967098', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sun, 28 Feb 2021 11:19:18 GMT', 'content-type': 'application/x-amzjson-1.1', 'content-length': '523', 'connection': 'keep-alive', 'x-amznrequestid': '6f13524b-*****************7098'}, 'RetryAttempts': 0}}