কম্পিউটার টিউটোরিয়াল

Boto3 ব্যবহার করে একটি Glue Job আছে কিনা চেক করা


সমস্যা বিবরণ − Python-এ boto3 লাইব্রেরি ব্যবহার করে একটি Glue Job আছে কিনা চেক করা। উদাহরণস্বরূপ, run_s3_file_job AWS Glue-এ আছে কিনা চেক করা।

সমাধানের পদ্ধতি/অ্যালগরিদম

ধাপ ১ − boto3 এবং botocore এক্সসেপশন ইম্পোর্ট করে এক্সসেপশন হ্যান্ডল করা।

ধাপ ২ − job_name ফাংশনে প্যারামিটার।

ধাপ ৩ − boto3 লাইব্রেরি ব্যবহার করে AWS সেশন তৈরি করা। নিশ্চিত করুন region_name ডিফল্ট প্রোফাইলে ذکر করা আছে। না থাকলে সেশন তৈরি করার সময় স্পষ্টভাবে region_name পাস করুন।

ধাপ ৪ − Glue-এর জন্য AWS ক্লায়েন্ট তৈরি করা।

ধাপ ৫ − এখন get_job ফাংশন ব্যবহার করুন এবং JobName পাস করুন।

ধাপ ৬ − যদি জবটি থাকে, রেসপন্সে জব সম্পর্কে সকল ডিটেইলস থাকবে, অন্যথায় এটি এক্সসেপশন থ্রো করবে।

ধাপ ৭ − জব চেক করার সময় যদি কিছু ভুল হয় তবে জেনেরিক এক্সসেপশন হ্যান্ডল করা।

উদাহরণ

একটি Glue Job আছে কিনা চেক করতে নিচের কোড ব্যবহার করুন −

import boto3 from botocore.exceptions import ClientError def check_glue_job_exists(job_name):     session = boto3.session.Session()     glue_client = session.client('glue')     try:         response = glue_client.get_job(JobName=job_name)         return response     except ClientError as e:         raise Exception("boto3 client error in check_glue_job_exists: " + e.__str__())     except Exception as e:         raise Exception("Unexpected error in check_glue_job_exists: " + e.__str__()) # এক্সিস্টিং জব চেক করা print(check_glue_job_exists("run_s3_file_job")) # জব নেই print(check_glue_job_exists("run_s3_file_job_not_exist"))

আউটপুট

# এক্সিস্টিং জব চেক করা {'Job': {'Name': 'run_s3_file_job', 'Description': 'Glue job for the test', 'Role': 'arn:aws:iam::12345:role/delegated/glue-service-role', 'CreatedOn': datetime.datetime(2021, 02, 10, 15, 7, 3, 638000, tzinfo=tzlocal()), 'LastModifiedOn': datetime.datetime(2021, 02, 10, 15, 7, 3, 638000, tzinfo=tzlocal()), 'ExecutionProperty': {'MaxConcurrentRuns': 1}, 'Command': {'Name': 'glueetl', 'ScriptLocation': 's3://test/pipeline.py', 'PythonVersion': '3'}, 'DefaultArguments': {'--job-language': 'python', 'Step': '0'}, 'MaxRetries': 0, 'AllocatedCapacity': 4, 'Timeout': 2880, 'MaxCapacity': 4.0, 'WorkerType': 'G.1X', 'NumberOfWorkers': 4, 'GlueVersion': '2.0'}, 'ResponseMetadata': {'RequestId': 'e3ec9e2c-e75d-4443-bfeafef674fff7e9', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sat, 13 Feb 2021 13:20:27 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '1501', 'connection': 'keep-alive', 'x-amznrequestid': 'e3ec9e2c-e75d-4443-bfea-fef674fff7e9'}, 'RetryAttempts': 0}} # জব নেই botocore.errorfactory.EntityNotFoundException: An error occurred (EntityNotFoundException) when calling the GetJob operation: Job with name: run_s3_file_job_not_exist not found.

  1. Boto3 এবং AWS Resource ব্যবহার করে S3-এ একটি রুট বাকেট আছে কিনা তা নির্ণয় করার পদ্ধতি

  2. পাইথনে একটি সংখ্যা প্রাইম (Prime) কিনা তা কীভাবে যাচাই করবেন?

  3. পাইথনে ফাইল এক্সিস্ট করে কিনা চেক কীভাবে করবেন?

  4. পাইথনে ফাইল আছে কিনা চেক করার পদ্ধতি