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