সমস্যা বিবৃতি - একটি আঠালো কাজ চালানোর জন্য পাইথনে 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