समस्या विवरण - Python में boto3 लाइब्रेरी का उपयोग करके दिए गए जॉब के सभी रन का स्टेटस चेक करें।
उदाहरण - 'run_s3_file_job' नाम के Glue जॉब के सभी रन का स्टेटस प्राप्त करें।
इस समस्या को हल करने का दृष्टिकोण/एल्गोरिदम
चरण 1 - अपवादों को संभालने के लिए boto3 और botocore एक्सेप्शन्स आयात करें।
चरण 2 - job_name अनिवार्य पैरामीटर है। फंक्शन दिए गए job_name का विवरण प्राप्त करेगा।
चरण 3 - boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं। सुनिश्चित करें कि region_name डिफ़ॉल्ट प्रोफ़ाइल में उल्लिखित है। यदि नहीं बताया गया है, तो सत्र बनाते समय region_name को स्पष्ट रूप से पास करें।
चरण 4 - Glue के लिए AWS क्लाइंट बनाएं।
चरण 5 - अब get_job_runs फंक्शन का उपयोग करें और job_name को JobName पैरामीटर के रूप में पास करें।
चरण 6 - यह दिए गए जॉब के सभी पिछले जॉब रन का विवरण प्राप्त करता है।
चरण 7 - फॉर लूप का उपयोग करके विशिष्ट जॉब रन का विवरण एक-एक करके प्राप्त करें।
चरण 8 - अब, जॉब का विशिष्ट स्टेटस और संबंधित जॉब रन आईडी प्राप्त करें। स्टेटस रनिंग हो सकता है यदि जॉब पूरा नहीं हुआ है, अन्यथा SUCCEEDED/FAILED।
चरण 9 - जॉब चेक करते समय यदि कुछ गलत हुआ तो सामान्य अपवाद को संभालें।
उदाहरण
दिए गए जॉब के सभी रन का स्टेटस चेक करने के लिए निम्न कोड का उपयोग करें -
import boto3 from botocore.exceptions import ClientError def get_status_of_job_all_runs(job_name): session = boto3.session.Session() glue_client = session.client('glue') try: response = glue_client.get_job_runs(JobName=job_name) for res in response['JobRuns']: print("Job Run id is:" + res.get("Id")) print("status is:" + res.get("JobRunState")) except ClientError as e: raise Exception("boto3 client error in get_status_of_job_all_runs: " + e.__str__()) except Exception as e: raise Exception("Unexpected error in get_status_of_job_all_runs: " + e.__str__()) get_status_of_job_all_runs("run_s3_file_job"))आउटपुट
job id is:jr_6ef92e90ad66b1a6c7abb1c2659d114a34962b8c6ae4bf9b328ac90b99a33b7d status is:FAILED job id is:jr_9fef13265036406e03e7cae79257305353203ab20b5f400e0c429e10a4999dba status is:FAILED job id is:jr_f9d715a33e83460fc2ef6dee0840a98ef52c06c2ff569627633c4505fda7d835 status is:FAILED job id is:jr_71b57633ac4d8c24f904f0ae01f613f6d54baee440d0ede23f6030cffb0bf4d7 status is:FAILED job id is:jr_b7ead6b6ae43da2580888c73d6896c177510df73bd77c843d3e77b4dc5f22e2f status is:FAILED job id is:jr_6e757509d51066648d49c22a47c26e728d6f842a1c5d2fd4f41941ca868460e6 status is:FAILED job id is:jr_89c1a7b8ea045fac36d25733d7fc657d3560eb159e7e122a8960981dd225a9d0 status is:FAILED job id is:jr_87522bcb924e41a6cf0294185b0a09e46a4ff4c67db5007ff7c10f959836a44b status is:FAILED job id is:jr_08bb54854c8e5c60e96a3e2bade1184963973c1ea7a1e760029e740d4c4c5d7d status is:FAILED job id is:jr_540a90407bb7fbde72b3e1d6cbc98c3b246c21c87d836ff389491bf95520bb41 status is:FAILED job id is:jr_f27227cb16ec9d3df665d8753b09c2e2d24d5b5e5263f3d3f17a9bd4669bee67 status is:FAILED job id is:jr_a1ae4ad2edcbdac5c948b8be92a79a37c27517113364ddc88c8a93bc712fe6c1 status is:SUCCEEDED