इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम
चरण 1 - अपवादों को संभालने के लिए boto3 और botocore अपवाद आयात करें।
चरण 2 - इस फ़ंक्शन के लिए किसी पैरामीटर की आवश्यकता नहीं है। यह उपयोगकर्ता खाते के लिए सभी सूचीबद्ध ट्रिगर लाएगा और फिर प्रत्येक ट्रिगर का मेटाडेटा प्रदर्शित करेगा।
चरण 3 - boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं। सुनिश्चित करें कि डिफ़ॉल्ट प्रोफ़ाइल में क्षेत्र_नाम का उल्लेख किया गया है। यदि इसका उल्लेख नहीं है, तो सत्र बनाते समय स्पष्ट रूप से क्षेत्र_नाम पास करें।
चरण 4 - गोंद के लिए AWS क्लाइंट बनाएं।
चरण 5 - अब उपयोगकर्ता खाते में सूचीबद्ध सभी नौकरियों को प्राप्त करने के लिए list_workflows फ़ंक्शन का उपयोग करें।
चरण 6 - batch_get_workflows पर कॉल करें और पिछले फ़ंक्शन में प्राप्त नौकरी के नाम पास करें।
चरण 7 - यह list_of_workflows लौटाता है और प्रत्येक कार्यप्रवाह का मेटाडेटा।
चरण 8 - कार्य की जाँच करते समय कुछ गलत होने पर सामान्य अपवाद को संभालें।
उदाहरण
उपयोगकर्ता खाते में बनाए गए प्रत्येक कार्यप्रवाह का विवरण प्राप्त करने के लिए निम्नलिखित कोड का उपयोग करें -
import boto3
from botocore.exceptions import ClientError
def get_resource_maetadata_of_workflows():
session = boto3.session.Session()
glue_client = session.client('glue')
try:
list_of_workflows = glue_client.list_workflows()
response = glue_client.batch_get_workflows( Names=list_of_workflows['Workflows'])
return list_of_workflows, response
except ClientError as e:
raise Exception( "boto3 client error in get_resource_maetadata_of_workflows: " + e.__str__())
except Exception as e:
raise Exception( "Unexpected error in get_resource_maetadata_of_workflows: " + e.__str__())
a, b = get_resource_maetadata_of_workflows()
#List of Workflows
print(a)
#Resource metadata of each Workflow
print(b) आउटपुट
#List of Workflows
{'Workflows': ['dev-aiml-naviga-ods-load'], 'ResponseMetadata':
{'RequestId': '556890ce-bcd1-4bb0-9c33-3ae1db13f3a9', 'HTTPStatusCode':
200, 'HTTPHeaders': {'date': 'Sat, 27 Feb 2021 13:57:37 GMT', 'contenttype': 'application/x-amz-json-1.1', 'content-length': '91',
'connection': 'keep-alive', 'x-amzn-requestid': '556890ce-bcd1-4bb0-
9c33-3ae1db13f3a9'}, 'RetryAttempts': 0}}
#Resource metadata of each Workflow
{'Workflows': [{'Name': 'dev-aiml-naviga-ods-load',
'DefaultRunProperties': {}, 'CreatedOn': datetime.datetime(2020, 5, 27,
3, 10, 57, 967000, tzinfo=tzlocal()), 'LastModifiedOn':
datetime.datetime(2020, 5, 27, 3, 10, 57, 967000, tzinfo=tzlocal())},
'StartedOn': datetime.datetime(2021, 2, 3, 16, 14, 48, 795000,
tzinfo=tzlocal()), 'CompletedOn': datetime.datetime(2021, 2, 3, 16, 28,
6, 207000, tzinfo=tzlocal()), 'Status': 'COMPLETED', 'Statistics':
{'TotalActions': 3, 'TimeoutActions': 0, 'FailedActions': 0,
'StoppedActions': 0, 'SucceededActions': 3, 'RunningActions': 0}}},
'MissingWorkflows': [], 'ResponseMetadata': {'RequestId': 'b328d064-
24ab-48c4-b058-852387a3d474', 'HTTPStatusCode': 200, 'HTTPHeaders':
{'date': 'Sat, 27 Feb 2021 13:57:37 GMT', 'content-type':
'application/x-amz-json-1.1', 'content-length': '2655', 'connection':
'keep-alive', 'x-amzn-requestid': 'b328d064-24ab-48c4-b058-
852387a3d474'}, 'RetryAttempts': 0}}