কম্পিউটার টিউটোরিয়াল

Boto3 ব্যবহার করে AWS Glue Data Catalog-এ থাকা সব কানেকশনের ডিটেইলস পাওয়া


সমস্যা বিবরণ − Python-এ boto3 লাইব্রেরি ব্যবহার করে AWS Glue Data Catalog-এ থাকা সব কানেকশনের ডিটেইলস পাওয়া।

উদাহরণ − সব কানেকশন ডেফিনিশনের ডিটেইলস পাওয়া।

সমাধানের পদ্ধতি/অ্যালগরিদম

ধাপ ১ − boto3 এবং botocore এক্সসেপশন ইম্পোর্ট করে এক্সসেপশন হ্যান্ডল করা।

ধাপ ২ − কোনো প্যারামিটার নেই।

ধাপ ৩ − boto3 লাইব্রেরি ব্যবহার করে AWS সেশন তৈরি করা। নিশ্চিত করুন region_name ডিফল্ট প্রোফাইলে ذکر করা আছে। না থাকলে সেশন তৈরি করার সময় স্পষ্টভাবে region_name পাস করুন।

ধাপ ৪ − Glue-এর জন্য AWS ক্লায়েন্ট তৈরি করা।

ধাপ ৫ − get_connections ফাংশন কল করা।

ধাপ ৬ − এটি AWS Glue Data Catalog থেকে কানেকশন ডেফিনিশনের ডিটেইলস আনয়ন করবে।

ধাপ ৭ − জব চেক করার সময় যদি কিছু ভুল হয় তবে জেনেরিক এক্সসেপশন হ্যান্ডল করা।

উদাহরণ

AWS Glue Data Catalog-এ সব কানেকশনের ডেফিনিশন পাওয়ার জন্য নিচের কোড ব্যবহার করুন −

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}}

  1. Boto3 ব্যবহার করে AWS Glue Data Catalog থেকে এক/একাধিক নির্দিষ্ট ক্রলারের মেট্রিক্স পাওয়া

  2. Boto3 ব্যবহার করে AWS Glue Data Catalog থেকে একটি কানেকশনের ডিটেইলস পাওয়া

  3. Boto3 ব্যবহার করে AWS Glue Data Catalog-এ থাকা সব ক্লাসিফায়ারের ডিটেইলস পাওয়া

  4. Boto3 ব্যবহার করে AWS Glue Data Catalog থেকে একটি ক্লাসিফায়ারের ডিটেইলস পাওয়া