কম্পিউটার

চলমান আঠালো কাজের স্থিতি পরীক্ষা করতে Boto3 কীভাবে ব্যবহার করবেন?


সমস্যা বিবৃতি - একটি আঠালো কাজ চালানোর জন্য পাইথনে boto3 লাইব্রেরি ব্যবহার করুন এবং এটি সফল হোক বা ব্যর্থ হোক না কেন স্ট্যাটাস পেতে৷ উদাহরণস্বরূপ, কাজটি চালান run_s3_file_job এবং এটি স্ট্যাটাস পান।

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

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

ধাপ 2চাকরির_নাম বাধ্যতামূলক প্যারামিটার, যখন আর্গুমেন্টস ফাংশনের ঐচ্ছিক পরামিতি। কিছু কাজ চালানোর জন্য যুক্তি লাগে. সেক্ষেত্রে, আর্গুমেন্ট ডিক্ট হিসাবে পাস করা যেতে পারে।

যেমন:আর্গুমেন্টস ={'আর্গুমেন্টস1' ='মান1', 'আর্গুমেন্টস2' ='মান2'}

যদি চাকরিটি যুক্তি গ্রহণ না করে, তাহলে শুধু job_name পাস করুন।

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

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

ধাপ 5 − এখন start_job_run ফাংশন ব্যবহার করুন এবং প্রয়োজনে JobName এবং আর্গুমেন্ট পাস করুন।

ধাপ 6 − একবার কাজ শুরু হলে, এটি job_run_id প্রদান করে কাজের মেটাডেটা সহ।

পদক্ষেপ 7 - get_job_run ফাংশনটি ব্যবহার করুন এবং RunId প্যারামিটার পাস করুন পূর্ববর্তী ফাংশনের ফলাফল থেকে। এটি স্ট্যাটাস সম্পর্কে অভিধান প্রদান করে।

ধাপ 8 - এখন, কাজের নির্দিষ্ট স্ট্যাটাস পান। স্থিতি চলমান হতে পারে যদি কাজ সম্পূর্ণ না হয় অন্যথায় সফল/বিফল হয়।

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

উদাহরণ

একটি বিদ্যমান আঠালো কাজের −

চালাতে এবং স্থিতি পেতে নিম্নলিখিত কোডটি ব্যবহার করুন
import boto3
from botocore.exceptions import ClientError

def run_glue_job_get_status(job_name, arguments = {}):
   session = boto3.session.Session()
   glue_client = session.client('glue')
   try:
      job_run_id = glue_client.start_job_run(JobName=job_name, Arguments=arguments)
      status_detail = glue_client.get_job_run(JobName=job_name, RunId = job_run_id.get("JobRunId"))
      status = status_detail.get("JobRun").get("JobRunState")
      return status
   except ClientError as e:
      raise Exception( "boto3 client error in run_glue_job_get_status: " + e.__str__())
   except Exception as e:
      raise Exception( "Unexpected error in run_glue_job_get_status: " + e.__str__())

#Get status 1st time
print(run_glue_job_get_status("run_s3_file_job"))
#Get status 2nd time after waiting
time.sleep(10)
print(run_glue_job_get_status("run_s3_file_job"))

আউটপুট

##Get status 1st time
Running
#Get status 2nd time after waiting
SUCCEEDED

  1. একবারে একাধিক আঠালো কাজের বিবরণ পেতে Boto3 কীভাবে ব্যবহার করবেন?

  2. চলমান আঠালো কাজের স্থিতি পরীক্ষা করতে Boto3 কীভাবে ব্যবহার করবেন?

  3. একটি আঠালো কাজ চালানোর জন্য পাইথনে Boto3 লাইব্রেরি কীভাবে ব্যবহার করবেন?

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