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

Boto3 का उपयोग करके एक साथ सभी Glue जॉब्स की परिभाषा कैसे प्राप्त करें?


समस्या विवरण - Python में boto3 लाइब्रेरी का उपयोग करके यूज़र के AWS Glue डेटा कैटलॉग में मौजूद सभी Glue जॉब्स की परिभाषा प्राप्त करें।

उदाहरण - AWS Glue डेटा कैटलॉग में मौजूद सभी Glue जॉब्स की परिभाषा प्राप्त करें।

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

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

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

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

चरण 4 - Glue के लिए AWS क्लाइंट बनाएं।

चरण 5 - अब get_jobs फंक्शन का उपयोग करके उन सभी जॉब्स की परिभाषा प्राप्त करें जो यूज़र अकाउंट में सूचीबद्ध हैं। ध्यान दें कि list_jobs और get_jobs में अंतर है। List_jobs केवल AWS Glue डेटा कैटलॉग में मौजूद Glue जॉब्स के नाम प्राप्त करता है जबकि get_jobs प्रत्येक जॉब की परिभाषा पुनर्प्राप्त करता है।

चरण 6 - यह प्रत्येक जॉब की परिभाषा लौटाता है।

चरण 7 - जॉब चेक करते समय यदि कुछ गलत हुआ तो सामान्य अपवाद को संभालें।

उदाहरण

यूज़र अकाउंट में सूचीबद्ध प्रत्येक जॉब की परिभाषा प्राप्त करने के लिए निम्न कोड का उपयोग करें -

import boto3 from botocore.exceptions import ClientError def get_definition_of_glue_jobs():     session = boto3.session.Session()     glue_client = session.client('glue')     try:         response = glue_client.get_jobs()         return response     except ClientError as e:         raise Exception("boto3 client error in get_definition_of_glue_jobs: " + e.__str__())     except Exception as e:         raise Exception("Unexpected error in get_definition_of_glue_jobs: " + e.__str__()) print(get_definition_of_glue_jobs())

आउटपुट

{'Jobs': [ {'Name': '01_PythonShellTest1', 'Role': 'arn:aws:iam::********:role/devedl-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://ivz-dev-ds-staging- /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::*********:role/dev-edl-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://ivz-dev-dsstaging-work/ /test_14012021/01_pythonSHELL_14012021_123.py', 'PythonVersion': '3'}, 'DefaultArguments': {'--job-bookmark-option': 'jobbookmark-disable'}, 'MaxRetries': 0, 'AllocatedCapacity': 0, 'Timeout': 2880, 'MaxCapacity': 0.0625, 'GlueVersion': '1.0'}, {'Name': 'GlueConnectionTest', 'Role': 'arn:aws:iam::*********:role/devedl-qa-automation-glue-role', 'CreatedOn': datetime.datetime(2020, 3, 6, 16, 27, 3, 862000, tzinfo=tzlocal()), 'LastModifiedOn': datetime.datetime(2020, 3, 6, 16, 49, 19, 942000, tzinfo=tzlocal()), 'ExecutionProperty': {'MaxConcurrentRuns': 1}, 'Command': {'Name': 'pythonshell', 'ScriptLocation': 's3://glue-job-connection-testbucket/test.py', 'PythonVersion': '3'}, 'DefaultArguments': {'--jobbookmark-option': 'job-bookmark-disable', '--job-language': 'python'}, 'Connections': {'Connections': ['dev-edl-redshift-glue-connection', 'devedl-rds-glue-connection']}, 'MaxRetries': 0, 'AllocatedCapacity': 0, 'Timeout': 2880, 'MaxCapacity': 0.0625, 'GlueVersion': '1.0'}] 'NextToken': 'eyJleHBpcmF0aW9uIjp7InNlY29uZHMiOjE2MTQ2NjI2MTAsIm5hbm9zIjo2MjEwMDAwMDB9LCJsYXN0RXZhbHVhdGVkS2V5Ijp7ImpvYk5hbWUiOnsicyI6InRpY2stZGF0YS10ZXN0In0sImFjY291bnRJZCI6eyJzIjoiNzgyMjU4NDg1ODQxIn0sImpvYklkIjp7InMiOiJqXzhmZDc2MzhkYTcyMGQ5Yzk1YTg4MTlkOTgxNTE5MDdjM2JmYWI3ZGYxNGUwNGExZGM0ZTIzZjViYjczM2M2ZTYifX19', 'ResponseMetadata': {'RequestId': '287ad828- **************************af', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Mon, 01 Mar 2021 05:23:30 GMT', 'content-type': 'application/xamz-json-1.1', 'content-length': '8258', 'connection': 'keep-alive', 'xamzn-requestid': '287ad828-*****************af'}, 'RetryAttempts': 0}}

  1. - Boto3 का उपयोग करके एक साथ कई ट्रिगर्स का विवरण कैसे प्राप्त करें?

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

  1. - Boto3 का उपयोग करके एक साथ कई Glue जॉब्स का विवरण कैसे प्राप्त करें?

    इस लेख में, हम देखेंगे कि जॉब नामों की दी गई सूची के लिए संसाधन मेटाडेटा की सूची कैसे प्राप्त करें।समस्या विवरण - Python में boto3 लाइब्रेरी का उपयोग करके अपने अकाउंट में उपलब्ध जॉब्स प्राप्त करें। उदाहरण के लिए, अपने अकाउंट में उपलब्ध जॉब्स का विवरण प्राप्त करें।इस समस्या को हल करने का दृष्टिकोण/एल

  1. - Boto3 का उपयोग करके चल रहे Glue जॉब का स्टेटस कैसे चेक करें?

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