Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Boto3 का उपयोग करके एक साथ कई Glue जॉब्स का विवरण कैसे प्राप्त करें?


इस लेख में, हम देखेंगे कि जॉब नामों की दी गई सूची के लिए संसाधन मेटाडेटा की सूची कैसे प्राप्त करें।

समस्या विवरण - Python में boto3 लाइब्रेरी का उपयोग करके अपने अकाउंट में उपलब्ध जॉब्स प्राप्त करें। उदाहरण के लिए, अपने अकाउंट में उपलब्ध जॉब्स का विवरण प्राप्त करें।

इस समस्या को हल करने का दृष्टिकोण/एल्गोरिदम

चरण 1 - अपवादों को संभालने के लिए boto3 और botocore एक्सेप्शन्स आयात करें।

चरण 2 - इस फंक्शन के लिए कोई पैरामीटर आवश्यक नहीं है। यह यूज़र अकाउंट के लिए सूचीबद्ध सभी जॉब्स प्राप्त करेगा और फिर प्रत्येक जॉब का मेटाडेटा प्रदर्शित करेगा।

चरण 3 - boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं। सुनिश्चित करें कि region_name डिफ़ॉल्ट प्रोफ़ाइल में उल्लिखित है। यदि नहीं बताया गया है, तो सत्र बनाते समय region_name को स्पष्ट रूप से पास करें।

चरण 4 - Glue के लिए AWS क्लाइंट बनाएं।

चरण 5 - अब list_jobs फंक्शन का उपयोग करके यूज़र अकाउंट में सूचीबद्ध सभी जॉब्स प्राप्त करें।

चरण 6 - batch_get_jobs कॉल करें और पिछले फंक्शन में प्राप्त जॉब नाम पास करें।

चरण 7 - यह list_of_jobs और प्रत्येक जॉब का मेटाडेटा लौटाता है।

चरण 8 - जॉब चेक करते समय यदि कुछ गलत हुआ तो सामान्य अपवाद को संभालें।

उदाहरण

यूज़र अकाउंट में सूचीबद्ध प्रत्येक जॉब का विवरण प्राप्त करने के लिए निम्न कोड का उपयोग करें -

import boto3 from botocore.exceptions import ClientError def get_resource_maetadata_of_glue_jobs():     session = boto3.session.Session()     glue_client = session.client('glue')     try:         list_of_jobs = glue_client.list_jobs()         response = glue_client.batch_get_jobs(JobNames=list_of_jobs['JobNames'])         return list_of_jobs, response     except ClientError as e:         raise Exception("boto3 client error in get_resource_maetadata_of_glue_jobs: " + e.__str__())     except Exception as e:         raise Exception("Unexpected error in get_resource_maetadata_of_glue_jobs: " + e.__str__()) a, b = get_resource_metadat_of_glue_jobs() # जॉब्स की सूची print(a) # प्रत्येक जॉब का संसाधन मेटाडेटा print(b)

आउटपुट

# जॉब्स की सूची {'JobNames': ['01_PythonShellTest1', '01_pythonSHELL_14012021'], 'NextToken': 'eyJleHBpcmF0aW9uIjp7InNlY29uZHMiOjE2MTQxNzE2OTksIm5hbm9zIjo1MTYwMDAwMDB9LCJsYXN0RXZhbHVzFiMzAzNzAxMzRmNDk3NWM3M2MyMjhjYTk5MDgzZTA3YjQ0ZWEyOTZlIn19fQ==', 'ResponseMetadata': {'RequestId': '5d3eb19a-41f5-b24e-2d59ed9664b5', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Tue, 23 Feb 2021 13:01:39 GMT', 'content-type': 'application/x-amz-json-1.1', 'contentlength': '1134', 'connection': 'keep-alive', 'x-amzn-requestid': '5d3eb19a-41f5-b24e-2d59ed9664b5'}, 'RetryAttempts': 0}} # प्रत्येक जॉब का संसाधन मेटाडेटा {'Jobs': [{'Name': '01_PythonShellTest1', 'Role': 'arn:aws:iam::1234:role/dev-edl-glue-role', 'CreatedOn': datetime.datetime(2021, 1, 6, 19, 59, 19, 387000, tzinfo=tzlocal()), 'LastModifiedOn': datetime.datetime(2021, 2, 9, 21, 47, 31, 614000, tzinfo=tzlocal()), 'ExecutionProperty': {'MaxConcurrentRuns': 1}, 'Command': {'Name': 'pythonshell', 'ScriptLocation': 's3://test/01_pythonShellTest/test1/01_PythonShellTest1.py', 'PythonVersion': '3'}, 'DefaultArguments': {'--job-bookmark-option': 'job-bookmark-disable', '--job-language': 'python'}, 'MaxRetries': 0, 'AllocatedCapacity': 0, 'Timeout': 2880, 'MaxCapacity': 0.0625, 'GlueVersion': '1.0'}, {'Name': '01_pythonSHELL_14012021', 'Role': 'arn:aws:iam::1234:role/devedl-glue-role', 'CreatedOn': datetime.datetime(2021, 1, 14, 20, 22, 40, 965000, tzinfo=tzlocal()), 'LastModifiedOn': datetime.datetime(2021, 1, 14, 20, 22, 40, 965000, tzinfo=tzlocal()), 'ExecutionProperty': {'MaxConcurrentRuns': 1}, 'Command': {'Name': 'pythonshell', 'ScriptLocation': 's3://test/01_pythonSHELL_14012021_123.py', 'PythonVersion': '3'}, 'DefaultArguments': {'--job-bookmark-option': 'job-bookmark-disable'}, 'MaxRetries': 0, 'AllocatedCapacity': 0, 'Timeout': 2880, 'MaxCapacity': 0.0625, 'GlueVersion': '1.0'}]}


  1. - Python में Boto3 लाइब्रेरी का उपयोग करके क्रॉलर का विवरण कैसे प्राप्त करें?

    उदाहरण: क्रॉलर, crawler_for_s3_file_job का विवरण प्राप्त करें।इस समस्या को हल करने का दृष्टिकोण/एल्गोरिदमचरण 1 - अपवादों को संभालने के लिए boto3 और botocore एक्सेप्शन्स आयात करें।चरण 2 - crawler_name अनिवार्य पैरामीटर है। यह एक सूची है इसलिए यूज़र एक समय में कई क्रॉलर्स के नाम भेजकर विवरण प्राप्त कर

  1. - Boto3 का उपयोग करके चल रहे Glue जॉब का स्टेटस कैसे चेक करें?

    समस्या विवरण - Python में boto3 लाइब्रेरी का उपयोग करके Glue जॉब चलाएं और स्टेटस प्राप्त करें कि यह सफल हुआ या विफल। उदाहरण के लिए, जॉब run_s3_file_job चलाएं और उसका स्टेटस प्राप्त करें।इस समस्या को हल करने का दृष्टिकोण/एल्गोरिदमचरण 1 - अपवादों को संभालने के लिए boto3 और botocore एक्सेप्शन्स आयात कर

  1. - Python में Boto3 लाइब्रेरी का उपयोग करके Glue जॉब कैसे चलाएं?

    समस्या विवरण - Python में boto3 लाइब्रेरी का उपयोग करके Glue जॉब चलाएं। उदाहरण के लिए, जॉब run_s3_file_job चलाएं।इस समस्या को हल करने का दृष्टिकोण/एल्गोरिदमचरण 1 - अपवादों को संभालने के लिए boto3 और botocore एक्सेप्शन्स आयात करें।चरण 2 - job_name फंक्शन में अनिवार्य पैरामीटर्स हैं जबकि arguments वैक