इस लेख में, हम देखेंगे कि उपयोगकर्ता AWS Glue डेटा कैटलॉग से जॉब से जुड़े सभी ट्रिगर्स का विवरण कैसे प्राप्त कर सकता है।
उदाहरण
जॉब - 'employee_details' से जुड़े सभी ट्रिगर्स का विवरण प्राप्त करें।
समस्या कथन: जॉब से जुड़े सभी ट्रिगर्स का विवरण प्राप्त करने के लिए पायथन में boto3 लाइब्रेरी का उपयोग करें।
इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम
चरण 1: अपवादों को संभालने के लिए boto3 और botocore अपवाद आयात करें।
चरण 2: job_name इस फ़ंक्शन के लिए वैकल्पिक पैरामीटर है। यदि job_name प्रदान किया गया है, तो यह उन सभी ट्रिगर्स को पुनर्प्राप्त करता है जो उसी जॉब से जुड़े हैं और इस जॉब को शुरू कर सकते हैं। हालांकि, यदि ऐसा कोई ट्रिगर नहीं है, तो यह सभी ट्रिगर्स लौटाता है। डिफ़ॉल्ट रूप से, मान None है, इसलिए यदि इस फ़ंक्शन को कॉल करते समय job_name पास नहीं किया जाता है, तो यह सभी ट्रिगर्स का विवरण लौटाएगा।
चरण 3: boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं। सुनिश्चित करें कि region_name डिफ़ॉल्ट प्रोफ़ाइल में उल्लिखित है। यदि नहीं, तो सत्र बनाते समय स्पष्ट रूप से region_name पास करें।
चरण 4: glue के लिए AWS क्लाइंट बनाएं।
चरण 5: get_triggers को कॉल करें और job_name को DependentJobName के रूप में पास करें
चरण 6: यह इस जॉब से जुड़े ट्रिगर्स का विवरण लौटाता है।
चरण 7: जॉब की जांच करते समय यदि कुछ गलत हुआ तो सामान्य अपवाद को संभालें।
उदाहरण कोड
निम्न कोड जॉब से जुड़े सभी ट्रिगर्स का विवरण प्राप्त करता है -
import boto3
from botocore.exceptions import ClientError
def get_details_of_triggers(job_name=None):
session = boto3.session.Session()
glue_client = session.client('glue')
try:
response = glue_client.get_triggers(DependentJobName=job_name)
return response
except ClientError as e:
raise Exception("boto3 client error in get_details_of_triggers: " + e.__str__())
except Exception as e:
raise Exception("Unexpected error in get_details_of_triggers: " + e.__str__())
a = get_details_of_triggers('employee_details')
print(a)
आउटपुट
{'Triggers': [{'Name': '01_PythonShellTest1', 'WorkflowName': 'arn:aws:iam::1234:role/dev-edl', 'Id': 'string', 'Type': 'SCHEDULED'|'CONDITIONAL'|'ON_DEMAND', 'State': 'CREATING'|'CREATED'|'ACTIVATING'|'ACTIVATED'|'DEACTIVATING'|'DEACTIVATED'|'DELETING'|'UPDATING', 'Description': 'string', 'Schedule': 'string'}]}