সমস্যা বিবরণ − Python-এ boto3 লাইব্রেরি ব্যবহার করে AWS Glue Data Catalog-এ থাকা একটি কানেকশনের ডিটেইলস পাওয়া।
উদাহরণ − একটি কানেকশন ডেফিনিশনের ডিটেইলস পাওয়া, 'aurora-test'।
সমাধানের পদ্ধতি/অ্যালগরিদম
ধাপ ১ − boto3 এবং botocore এক্সসেপশন ইম্পোর্ট করে এক্সসেপশন হ্যান্ডল করা।
ধাপ ২ − connection_name প্যারামিটার পাস করা যার ডেফিনিশন চেক করতে হবে।
ধাপ ৩ − boto3 লাইব্রেরি ব্যবহার করে AWS সেশন তৈরি করা। নিশ্চিত করুন region_name ডিফল্ট প্রোফাইলে ذکر করা আছে। না থাকলে সেশন তৈরি করার সময় স্পষ্টভাবে region_name পাস করুন।
ধাপ ৪ − Glue-এর জন্য AWS ক্লায়েন্ট তৈরি করা।
ধাপ ৫ − get_connection ফাংশন কল করা এবং connection_name কে Name প্যারামিটার হিসেবে পাস করা।
ধাপ ৬ − এটি AWS Glue Data Catalog থেকে কানেকশন ডেফিনিশনের ডিটেইলস আনয়ন করবে।
ধাপ ৭ − জব চেক করার সময় যদি কিছু ভুল হয় তবে জেনেরিক এক্সসেপশন হ্যান্ডল করা।
উদাহরণ
AWS Glue Data Catalog-এ একটি কানেকশনের ডেফিনিশন পাওয়ার জন্য নিচের কোড ব্যবহার করুন −
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}}