সমস্যা বিবরণ − Python-এ boto3 লাইব্রেরি ব্যবহার করে একটি মাইগ্রেটিং অপারেশনের স্ট্যাটাস পাওয়া।
উদাহরণ − একটি অ্যাকাউন্টে মাইগ্রেশন অপারেশনের স্ট্যাটাস পাওয়া।
সমাধানের পদ্ধতি/অ্যালগরিদম
ধাপ ১ − boto3 এবং botocore এক্সসেপশন ইম্পোর্ট করে এক্সসেপশন হ্যান্ডল করা।
ধাপ ২ − catalog_id প্যারামিটার পাস করা যেসব মাইগ্রেটিং স্ট্যাটাস চেক করতে হবে। যাইহোক, এটি একটি অপশনাল প্যারামিটার। যদি প্রদান না করা হয়, ডিফল্টভাবে এটি লগড-ইন ইউজার অ্যাকাউন্ট চেক করে যে মাইগ্রেশন চলছে কিনা বা সম্পন্ন হয়েছে। catalog_id ব্যবহারকারী অ্যাকাউন্ট আইডির অন্য কিছু নয়।
ধাপ ৩ − boto3 লাইব্রেরি ব্যবহার করে AWS সেশন তৈরি করা। নিশ্চিত করুন region_name ডিফল্ট প্রোফাইলে ذکر করা আছে। না থাকলে সেশন তৈরি করার সময় স্পষ্টভাবে region_name পাস করুন।
ধাপ ৪ − Glue-এর জন্য AWS ক্লায়েন্ট তৈরি করা।
ধাপ ৫ − get_catalog_import_status কল করা এবং catalog_id কে CatalogId প্যারামিটার হিসেবে পাস করা।
ধাপ ৬ − এটি চলমান মাইগ্রেটিং অপারেশনের ডিটেইলস আনয়ন করবে। অন্যথায়, এটি শেষ মাইগ্রেশন ডিটেইলস আনয়ন করবে।
ধাপ ৭ − জব চেক করার সময় যদি কিছু ভুল হয় তবে জেনেরিক এক্সসেপশন হ্যান্ডল করা।
উদাহরণ
একটি মাইগ্রেটিং অপারেশনের স্ট্যাটাস পাওয়ার জন্য নিচের কোড ব্যবহার করুন −
import boto3 from botocore.exceptions import ClientError def status_of_migration(catalog_id=None): session = boto3.session.Session() glue_client = session.client('glue') try: response = glue_client.get_catalog_import_status(CatalogId=catalog_id) return response except ClientError as e: raise Exception("boto3 client error in status_of_migration: " + e.__str__()) except Exception as e: raise Exception("Unexpected error in status_of_migration: " + e.__str__()) print(status_of_migration())আউটপুট
{'ImportStatus': {'ImportCompleted': True, 'ImportTime': datetime.datetime(2017, 11, 17, 1, 32, 44, tzinfo=tzlocal()), 'ImportedBy': 'StatusSetByDefault'}, 'ResponseMetadata': {'RequestId': '7c33d6f9-............-3b202961e3e7', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sun, 21 Feb 2021 05:40:06 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '102', 'connection': 'keep-alive', 'x-amzn-requestid': '7c33d6f9-......-3b202961e3e7'}, 'RetryAttempts': 0}}