समस्या विवरण - Python में boto3 लाइब्रेरी का उपयोग करके माइग्रेटिंग ऑपरेशन का स्टेटस प्राप्त करें।
उदाहरण - अकाउंट में माइग्रेशन ऑपरेशन का स्टेटस प्राप्त करें।
इस समस्या को हल करने का दृष्टिकोण/एल्गोरिदम
चरण 1 - अपवादों को संभालने के लिए boto3 और botocore एक्सेप्शन्स आयात करें।
चरण 2 - पैरामीटर catalog_id पास करें जिसका माइग्रेटिंग स्टेटस चेक करना है। हालांकि, यह एक वैकल्पिक पैरामीटर है। यदि प्रदान नहीं किया गया है, तो डिफ़ॉल्ट रूप से यह लॉग्ड-इन यूज़र अकाउंट के लिए चेक करता है कि माइग्रेशन प्रगति पर है या पूरा हो गया है। catalog_id यूज़र अकाउंट आईडी के अलावा कुछ नहीं है।
चरण 3 - boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं। सुनिश्चित करें कि region_name डिफ़ॉल्ट प्रोफ़ाइल में उल्लिखित है। यदि नहीं बताया गया है, तो सत्र बनाते समय region_name को स्पष्ट रूप से पास करें।
चरण 4 - Glue के लिए AWS क्लाइंट बनाएं।
चरण 5 - get_catalog_import_status कॉल करें और catalog_id को CatalogId पैरामीटर के रूप में पास करें।
चरण 6 - यह चल रहे माइग्रेटिंग ऑपरेशन का विवरण प्राप्त करेगा। अन्यथा, यह अंतिम माइग्रेशन विवरण प्राप्त करेगा।
चरण 7 - जॉब चेक करते समय यदि कुछ गलत हुआ तो सामान्य अपवाद को संभालें।
उदाहरण
माइग्रेटिंग ऑपरेशन का स्टेटस प्राप्त करने के लिए निम्न कोड का उपयोग करें -
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}}