जब कोई यूज़र AWS डेटा कैटलॉग से वर्कफ़्लो डिलीट करना चाहता है।
उदाहरण - अपने अकाउंट से वर्कफ़्लो 'test' डिलीट करें।
समस्या विवरण - Python में boto3 लाइब्रेरी का उपयोग करके अपने अकाउंट में उपलब्ध वर्कफ़्लो को डिलीट करें।
इस समस्या को हल करने का दृष्टिकोण/एल्गोरिदम
चरण 1 - अपवादों को संभालने के लिए boto3 और botocore एक्सेप्शन्स आयात करें।
चरण 2 - पैरामीटर workflow_name पास करें जिसे AWS Glue कैटलॉग से डिलीट किया जाना चाहिए।
चरण 3 - boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं। सुनिश्चित करें कि region_name डिफ़ॉल्ट प्रोफ़ाइल में उल्लिखित है। यदि नहीं बताया गया है, तो सत्र बनाते समय region_name को स्पष्ट रूप से पास करें।
चरण 4 - Glue के लिए AWS क्लाइंट बनाएं।
चरण 5 - delete_workflow कॉल करें और workflow_name को Name पैरामीटर के रूप में पास करें।
चरण 6 - यह वर्कफ़्लो को डिलीट करेगा और रिस्पॉन्स मेटाडेटा लौटाएगा। कृपया ध्यान दें, यदि वर्कफ़्लो AWS डेटा कैटलॉग में नहीं मिलता है, तो यह कोई अपवाद नहीं फेंकता।
चरण 7 - जॉब चेक करते समय यदि कुछ गलत हुआ तो सामान्य अपवाद को संभालें।
उदाहरण
यूज़र अकाउंट में सूचीबद्ध वर्कफ़्लो को डिलीट करने के लिए निम्न कोड का उपयोग करें -
import boto3 from botocore.exceptions import ClientError def delete_a_workflow(workflow_name): session = boto3.session.Session() glue_client = session.client('glue') try: response = glue_client.delete_workflow(Name=workflow_name) return response except ClientError as e: raise Exception("boto3 client error in delete_a_workflow: " + e.__str__()) except Exception as e: raise Exception("Unexpected error in delete_a_workflow: " + e.__str__()) print(delete_a_workflow("test"))आउटपुट
{'Name': 'test, 'ResponseMetadata': {'RequestId': '..........-.....-59a9bc817e0f', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sun, 21 Feb 2021 05:37:11 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '35', 'connection': 'keep-alive', 'x-amzn-requestid': '........-59a9bc817e0f'}, 'RetryAttempts': 0}}