সমস্যা বিবরণ − Python-এ boto3 লাইব্রেরি ব্যবহার করে একটি নির্দিষ্ট ক্রলারের মেট্রিক্স পুনরুদ্ধার করা।
উদাহরণ − একটি নির্দিষ্ট ক্রলারের মেট্রিক্স পুনরুদ্ধার করা, crawler_for_s3_file_job।
সমাধানের পদ্ধতি/অ্যালগরিদম
ধাপ ১ − boto3 এবং botocore এক্সসেপশন ইম্পোর্ট করে এক্সসেপশন হ্যান্ডল করা।
ধাপ ২ − crawler_names হলো বাধ্যতামূলক প্যারামিটার। এটি একটি লিস্ট তাই ইউজার একবারে এক বা একাধিক ক্রলারের নাম পাস করে মেট্রিক্স আনয়ন করতে পারে।
ধাপ ৩ − boto3 লাইব্রেরি ব্যবহার করে AWS সেশন তৈরি করা। নিশ্চিত করুন region_name ডিফল্ট প্রোফাইলে ذکر করা আছে। না থাকলে সেশন তৈরি করার সময় স্পষ্টভাবে region_name পাস করুন।
ধাপ ৪ − Glue-এর জন্য AWS ক্লায়েন্ট তৈরি করা।
ধাপ ৫ − এখন get_crawler_metrics ফাংশন ব্যবহার করুন এবং crawler_names এবং CrawlerNameList প্যারামিটার পাস করুন।
ধাপ ৬ − এটি ক্রলারদের মেট্রিক্স রিটার্ন করে।
ধাপ ৭ − জব চেক করার সময় যদি কিছু ভুল হয় তবে জেনেরিক এক্সসেপশন হ্যান্ডল করা।
উদাহরণ
একটি নির্দিষ্ট ক্রলারের মেট্রিক্স পুনরুদ্ধার করতে নিচের কোড ব্যবহার করুন −
import boto3 from botocore.exceptions import ClientError def retrieves_metrics_of_a_crawler(crawler_names:list): session = boto3.session.Session() glue_client = session.client('glue') try: crawler_details = glue_client.get_crawler_metrics(CrawlerNameList=crawler_names) return crawler_details except ClientError as e: raise Exception("boto3 client error in retrieves_metrics_of_a_crawler: " + e.__str__()) except Exception as e: raise Exception("Unexpected error in retrieves_metrics_of_a_crawler: " + e.__str__()) print(retrieves_metrics_of_a_crawler(["crawler_for_s3_file_job"]))আউটপুট
{'CrawlerMetricsList': [{'CrawlerName': crawler_for_s3_file_job, 'TimeLeftSeconds': 0.0, 'StillEstimating': False, 'LastRuntimeSeconds': 79.673, 'MedianRuntimeSeconds': 79.673, 'TablesCreated': 1, 'TablesUpdated': 0, 'TablesDeleted': 0}], 'ResponseMetadata': {'RequestId': '680cf4ca-********0abe', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sun, 28 Feb 2021 11:38:08 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '216', 'connection': 'keep-alive', 'x-amzn-requestid': '680cf4ca-******************0abe'}, 'RetryAttempts': 0}}