সমস্যা বিবরণ − Python-এ boto3 লাইব্রেরি ব্যবহার করে AWS Glue Data Catalog থেকে একটি ক্লাসিফায়ারের ডিটেইলস পাওয়া। উদাহরণস্বরূপ, একটি ক্লাসিফায়ারের ডিটেইলস পাওয়া – 'xml-test'।
সমাধানের পদ্ধতি/অ্যালগরিদম
ধাপ ১ − boto3 এবং botocore এক্সসেপশন ইম্পোর্ট করে এক্সসেপশন হ্যান্ডল করা।
ধাপ ২ − classifier_name প্যারামিটার পাস করা যেসব ডিটেইলস চেক করতে হবে।
ধাপ ৩ − boto3 লাইব্রেরি ব্যবহার করে AWS সেশন তৈরি করা। নিশ্চিত করুন region_name ডিফল্ট প্রোফাইলে ذکر করা আছে। না থাকলে সেশন তৈরি করার সময় স্পষ্টভাবে region_name পাস করুন।
ধাপ ৪ − Glue-এর জন্য AWS ক্লায়েন্ট তৈরি করা।
ধাপ ৫ − get_classifier কল করা এবং classifier_name কে Name প্যারামিটার হিসেবে পাস করা।
ধাপ ৬ − এটি ক্লাসিফায়ারের ডিটেইলস আনয়ন করবে।
ধাপ ৭ − জব চেক করার সময় যদি কিছু ভুল হয় তবে জেনেরিক এক্সসেপশন হ্যান্ডল করা।
উদাহরণ
AWS Glue Data Catalog থেকে একটি ক্লাসিফায়ারের ডিটেইলস পাওয়ার জন্য নিচের কোড ব্যবহার করুন −
import boto3 from botocore.exceptions import ClientError def get_classifier_details(classifier_name): session = boto3.session.Session() glue_client = session.client('glue') try: response = glue_client.get_classifier(Name=classifier_name) return response except ClientError as e: raise Exception("boto3 client error in get_classifier_details: " + e.__str__()) except Exception as e: raise Exception("Unexpected error in get_classifier_details: " + e.__str__()) print(get_classifier_details("xml-test"))আউটপুট
{'Classifier': {'GrokClassifier': {'Name': 'xml-test', 'Classification': 'xml', 'CreationTime': datetime.datetime(2018, 6, 21, 4, 7, 4, tzinfo=tzlocal()), 'LastUpdated': datetime.datetime(2018, 6, 21, 4, 7, 11, tzinfo=tzlocal()), 'Version': 2, 'GrokPattern': 'SYSLOGTIMESTAMP %{MONTH} +%{MONTHDAY} %{TIME}'}}, 'ResponseMetadata': {'RequestId': 'c291cce2-..............-3552077ddefd', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sun, 21 Feb 2021 07:58:09 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '218', 'connection': 'keep-alive', 'x-amzn-requestid': 'c291cce2-......-3552077ddefd'}, 'RetryAttempts': 0}}