इस लेख में, हम देखेंगे कि कैसे एक उपयोगकर्ता किसी वर्कफ़्लो का संसाधन मेटाडेटा प्राप्त कर सकता है।
उदाहरण
आपके खाते में बनाए गए AWS ग्लू डेटा कैटलॉग से वर्कफ़्लो का विवरण प्राप्त करें।
समस्या कथन: boto3 . का उपयोग करें आपके खाते में बनाए गए वर्कफ़्लो का मेटाडेटा प्राप्त करने के लिए पायथन में लाइब्रेरी।
इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम
-
चरण 1: आयात करें boto3 और बोटोकोर अपवादों को संभालने के लिए अपवाद।
-
चरण 2: कार्यप्रवाह_नाम इस फ़ंक्शन के लिए आवश्यक पैरामीटर है। यह दिए गए वर्कफ़्लो का मेटाडेटा प्राप्त करेगा।
-
चरण 3: boto3 lib . का उपयोग करके AWS सत्र बनाएं . सुनिश्चित करें कि क्षेत्र_नाम डिफ़ॉल्ट प्रोफ़ाइल में उल्लेख किया गया है। यदि इसका उल्लेख नहीं है, तो स्पष्ट रूप से region_name . पास करें सत्र बनाते समय।
-
चरण 4: गोंद . के लिए AWS क्लाइंट बनाएं ।
-
चरण 5: get_workflow पर कॉल करें और workflow_name . पास करें नाम पैरामीटर के रूप में।
-
चरण 6: यह किसी दिए गए वर्कफ़्लो का मेटाडेटा लौटाता है।
-
चरण 7: कार्य की जाँच करते समय कुछ गलत होने पर सामान्य अपवाद को संभालें।
उदाहरण कोड
निम्न कोड उपयोगकर्ता खाते में बनाए गए वर्कफ़्लो का विवरण प्राप्त करता है -
import boto3 from botocore.exceptions import ClientError def get_resource_maetadata_of_workflow(workflow_name): session = boto3.session.Session() glue_client = session.client('glue') try: response = glue_client.get_workflow(Name=workflow_name) return response except ClientError as e: raise Exception("boto3 client error in get_resource_maetadata_of_workflow: " + e.__str__()) except Exception as e: raise Exception("Unexpected error in get_resource_maetadata_of_workflow: " + e.__str__()) a = get_resource_maetadata_of_workflow('dev-aiml-naviga-ods-load') print(a)
आउटपुट
{'Workflow': {'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}}