उदाहरण - AWS Glue डेटा कैटलॉग में बुकमार्क्ड जॉब 'book-job' का विवरण पुनर्प्राप्त करें।
समस्या विवरण - Python में boto3 लाइब्रेरी का उपयोग करके AWS Glue डेटा कैटलॉग में बुकमार्क्ड जॉब का विवरण पुनर्प्राप्त करें।
इस समस्या को हल करने का दृष्टिकोण/एल्गोरिदम
चरण 1 - अपवादों को संभालने के लिए boto3 और botocore एक्सेप्शन्स आयात करें।
चरण 2 - bookmarked_job_name अनिवार्य पैरामीटर है। इसमें पहले से बुकमार्क्ड job_name होना चाहिए, अन्यथा यह EntityNotFoundException फेंकेगा।
चरण 3 - boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं। सुनिश्चित करें कि region_name डिफ़ॉल्ट प्रोफ़ाइल में उल्लिखित है। यदि नहीं बताया गया है, तो सत्र बनाते समय region_name को स्पष्ट रूप से पास करें।
चरण 4 - Glue के लिए AWS क्लाइंट बनाएं।
चरण 5 - अब get_job_bookmark फंक्शन का उपयोग करें और bookmarked_job_name को JobName पैरामीटर के रूप में पास करें।
चरण 6 - यह बुकमार्क एंट्री से संबंधित विवरण लौटाता है। ध्यान दें कि यदि job_name बुकमार्क्ड नहीं है, तो यह EntityNotFound अपवाद फेंकेगा।
चरण 7 - जॉब चेक करते समय यदि कुछ गलत हुआ तो सामान्य अपवाद को संभालें।
उदाहरण
AWS Glue डेटा कैटलॉग में बुकमार्क्ड जॉब का विवरण पुनर्प्राप्त करने के लिए निम्न कोड का उपयोग करें -
import boto3 from botocore.exceptions import ClientError def retrieves_details_of_bookmarked_job(bookmarked_job_name): session = boto3.session.Session() glue_client = session.client('glue') try: response = glue_client.get_job_bookmark(JobName=bookmarked_job_name) return response except ClientError as e: raise Exception("boto3 client error in retrieves_details_of_bookmarked_job: " + e.__str__()) except Exception as e: raise Exception("Unexpected error in retrieves_details_of_bookmarked_job: " + e.__str__()) print(retrieves_details_of_bookmarked_job("book-job"))आउटपुट
{'JobBookmarkEntry': {'JobName': 'book-job', 'Version': 8, 'Run': 2, 'Attempt': 2, 'PreviousRunId': 'jr_dee547c2f78422e34136aa12c85de010b823787833eee04fbf34bc9b8cb4f7b9', 'RunId': 'jr_a035fe15daa31e9a751f02876c26e5d11a829f2689803a9e9643bd61f70273e4', 'JobBookmark': '{"gdf":{"jsonClass":"HadoopDataSourceJobBookmarkState","timestamps":{"RUN":"1","HIGH_BAND":"900000","CURR_LATEST_PARTITION":"0","CURR_LATEST_PARTITIONS":"","CURR_RUN_START_TIME":"2020-10-30T13:03:43.730Z","INCLUDE_LIST":""}}}'}, 'ResponseMetadata': {'RequestId': 'bacf1497-***************996f05b3c1', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sun, 28 Feb 2021 13:00:19 GMT', 'contenttype': 'application/x-amz-json-1.1', 'content-length': '535', 'connection': 'keep-alive', 'x-amzn-requestid': 'bacf1497-******************996f05b3c1'}, 'RetryAttempts': 0}}