সমস্যা বিবৃতি - একটি আঠালো কাজ চালানোর জন্য পাইথনে boto3 লাইব্রেরি ব্যবহার করুন। উদাহরণস্বরূপ, চাকরি রান_s3_ফাইল_জব চালান।
এই সমস্যা সমাধানের জন্য অ্যাপ্রোচ/অ্যালগরিদম
ধাপ 1 − ব্যতিক্রমগুলি পরিচালনা করতে boto3 এবং botocore ব্যতিক্রমগুলি আমদানি করুন৷
৷ধাপ 2 − job_name হল বাধ্যতামূলক প্যারামিটার যখন আর্গুমেন্ট হল ঐচ্ছিক প্যারামিটার। কিছু কাজ চালানোর জন্য যুক্তি লাগে. সেক্ষেত্রে, আর্গুমেন্ট ডিক্ট হিসাবে পাস করা যেতে পারে।
যেমন:আর্গুমেন্ট ={'আর্গুমেন্টস1' ='মান1', 'আর্গুমেন্টস2' ='মান2'
যদি চাকরিটি যুক্তি না নেয়, তাহলে শুধু job_name পাস করুন।
ধাপ 3 - boto3 লাইব্রেরি ব্যবহার করে একটি AWS সেশন তৈরি করুন। নিশ্চিত করুন যে অঞ্চল_নাম ডিফল্ট প্রোফাইলে উল্লেখ আছে। যদি এটি উল্লেখ না থাকে, তাহলে সেশন তৈরি করার সময় স্পষ্টভাবে অঞ্চল_নামটি পাস করুন।
পদক্ষেপ 4৷ − আঠার জন্য একটি AWS ক্লায়েন্ট তৈরি করুন৷
৷ধাপ 5 − এখন start_job_run ফাংশন ব্যবহার করুন এবং প্রয়োজনে JobName এবং আর্গুমেন্ট পাস করুন।
ধাপ 6 − একবার কাজ শুরু হলে, এটি কাজের মেটাডেটা সহ job_run_id প্রদান করে।
পদক্ষেপ 7 − কাজ চেক করার সময় কিছু ভুল হলে জেনেরিক ব্যতিক্রম হ্যান্ডেল করুন।
উদাহরণ
একটি বিদ্যমান আঠালো কাজ চালানোর জন্য নিম্নলিখিত কোডটি ব্যবহার করুন -
import boto3 from botocore.exceptions import ClientError def run_glue_job(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) return job_run_id except ClientError as e: raise Exception( "boto3 client error in run_glue_job: " + e.__str__()) except Exception as e: raise Exception( "Unexpected error in run_glue_job: " + e.__str__()) print(run_glue_job("run_s3_file_job"))
আউটপুট
{'JobRunId': 'jr_5f8136286322ce5b7d0387e28df6742abc6f5e6892751431692ffd717f45fc00', 'ResponseMetadata': {'RequestId': '36c48542-a060-468b-83ccb067a540bc3c', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sat, 13 Feb 2021 13:36:50 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '82', 'connection': 'keep-alive', 'x-amzn-requestid': '36c48542-a060-468b-83cc-b067a540bc3c'}, 'RetryAttempts': 0}}