কম্পিউটার

একটি আঠালো কাজ আছে কি না তা পরীক্ষা করতে Boto3 কিভাবে ব্যবহার করবেন?


সমস্যা বিবৃতি − আঠালো কাজ আছে কি না তা পরীক্ষা করতে পাইথনে boto3 লাইব্রেরি ব্যবহার করুন। উদাহরণস্বরূপ, run_s3_file_job কিনা তা পরীক্ষা করুন এডব্লিউএস গ্লুতে আছে কি নেই।

এই সমস্যা সমাধানের জন্য অ্যাপ্রোচ/অ্যালগরিদম

ধাপ 1 − ব্যতিক্রমগুলি পরিচালনা করতে boto3 এবং botocore ব্যতিক্রমগুলি আমদানি করুন৷

ধাপ 2 − job_name হল ফাংশনের পরামিতি।

ধাপ 3 - boto3 লাইব্রেরি ব্যবহার করে একটি AWS সেশন তৈরি করুন। অঞ্চলের_নাম নিশ্চিত করুন ডিফল্ট প্রোফাইলে উল্লেখ করা আছে। যদি এটি উল্লেখ করা না থাকে, তাহলে স্পষ্টভাবে region_name পাস করুন৷ সেশন তৈরি করার সময়।

পদক্ষেপ 4৷ − আঠার জন্য একটি AWS ক্লায়েন্ট তৈরি করুন৷

ধাপ 5 − এখন get_job ব্যবহার করুন ফাংশন এবং চাকরির নাম পাস করুন .

ধাপ 6 − যদি চাকরিটি বিদ্যমান থাকে, তাহলে প্রতিক্রিয়াটিতে চাকরি সম্পর্কে সমস্ত বিবরণ থাকবে, অন্যথায় এটি একটি ব্যতিক্রম ছুঁড়ে দেয়৷

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

উদাহরণ

একটি আঠালো কাজ আছে কিনা তা পরীক্ষা করতে নিম্নলিখিত কোডটি ব্যবহার করুন -

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__())

#To check existing job
print(check_glue_job_exists("run_s3_file_job"))
#Job doesn’t exist
print(check_glue_job_exists("run_s3_file_job_not_exist"))

আউটপুট

#To check existing job
{'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}}

#Job doesn’t exist
botocore.errorfactory.EntityNotFoundException: An error occurred
(EntityNotFoundException) when calling the GetJob operation: Job with
name: run_s3_file_job_not_exist not found.

  1. S3 তে একটি রুট বাকেট বিদ্যমান কিনা তা নির্ধারণ করতে Boto3 এবং AWS রিসোর্স কিভাবে ব্যবহার করবেন?

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

  3. পাইথন ব্যবহার করে একটি ফাইল বিদ্যমান কিনা তা আমি কিভাবে পরীক্ষা করব?

  4. পাইথন ব্যবহার করে একটি ফাইল বিদ্যমান আছে কিনা তা কিভাবে পরীক্ষা করবেন?