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

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

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

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

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

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

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

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

चरण 4 - गोंद के लिए 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()
#List of Jobs
print(a)
#Resource metadata of each job
print(b)

आउटपुट

#List of Jobs
{'JobNames': ['01_PythonShellTest1', '01_pythonSHELL_14012021'],
'NextToken':
'eyJleHBpcmF0aW9uIjp7InNlY29uZHMiOjE2MTQxNzE2OTksIm5hbm9zIjo1MTYwMDAwMDB
9LCJsYXN0RXZhbHV
zFiMzAzNzAxMzRmNDk3NWM3M2MyMjhjYTk5MDgzZTA3YjQ0ZWEyOTZlIn19fQ==',
'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}}

#Resource metadata of each job
{'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. क्रॉलर का विवरण प्राप्त करने के लिए पायथन में Boto3 लाइब्रेरी का उपयोग कैसे करें?

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

  1. ग्लू जॉब की स्थिति की जांच करने के लिए Boto3 का उपयोग कैसे करें?

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

  1. ग्लू जॉब चलाने के लिए पायथन में Boto3 लाइब्रेरी का उपयोग कैसे करें?

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