কম্পিউটার

একটি একক ক্রলারের বিবরণ পেতে Boto3 কীভাবে ব্যবহার করবেন?


সমস্যা বিবৃতি − একটি ক্রলারের বিবরণ পেতে পাইথনে boto3 লাইব্রেরি ব্যবহার করুন৷

উদাহরণ − একটি ক্রলারের বিবরণ পান, crawler_for_s3_file_job৷

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

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

ধাপ 2 − crawler_name হল বাধ্যতামূলক প্যারামিটার। এটি একটি স্ট্রিং যাতে ব্যবহারকারী বিশদ আনার জন্য একটি সময়ে শুধুমাত্র একটি ক্রলারের নাম পাঠাতে পারে৷

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

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

ধাপ 5 − এখন get_crawler ব্যবহার করুন ফাংশন এবং crawler_name পাস করুন .

ধাপ 6 - এটি ক্রলারের মেটাডেটা ফেরত দেয়।

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

উদাহরণ

একটি ক্রলারের বিবরণ আনতে নিম্নলিখিত কোডটি ব্যবহার করুন −

import boto3
from botocore.exceptions import ClientError

def get_one_crawler_details(crawler_name:str)
   session = boto3.session.Session()
   glue_client = session.client('glue')
   try:
      crawler_details = glue_client.get_crawler(Name= crawler_name)
      return crawler_details
   except ClientError as e:
      raise Exception("boto3 client error in get_one_crawler_details: " + e.__str__())
   except Exception as e:
      raise Exception("Unexpected error in get_one_crawler_details: " + e.__str__())
print(get_one_crawler_details("crawler_for_s3_file_job"))

আউটপুট

{'Crawler': {'Name': 'crawler_for_s3_file_job', 'Role': 'glue-role',
'Targets': {'S3Targets': [{'Path': 's3://test/', 'Exclusions': []}],
'JdbcTargets': [], 'DynamoDBTargets': [], 'CatalogTargets': []},
'DatabaseName': 'default', 'Classifiers': [], 'SchemaChangePolicy':
{'UpdateBehavior': 'UPDATE_IN_DATABASE', 'DeleteBehavior':
'DEPRECATE_IN_DATABASE'}, 'State': 'READY', 'TablePrefix': 'prod_scdk_',
'CrawlElapsedTime': 0, 'CreationTime': datetime.datetime(2018, 9, 24,
20, 42, 7, tzinfo=tzlocal()), 'LastUpdated': datetime.datetime(2020, 4,
27, 14, 49, 12, tzinfo=tzlocal()), 'LastCrawl': {'Status': 'SUCCEEDED',
'LogGroup': '/aws-glue/crawlers', 'LogStream':
'crawler_for_s3_file_job', 'MessagePrefix': ************-90ad1',
'StartTime': datetime.datetime(2020, 4, 27, 14, 49, 19,
tzinfo=tzlocal())}, 'Version': 15}, 'ResponseMetadata': {'RequestId':
'8c7dcbde-***********************-774', 'HTTPStatusCode': 200,
'HTTPHeaders': {'date': 'Sun, 28 Feb 2021 11:34:32 GMT', 'content-type':
'application/x-amz-json-1.1', 'content-length': '805', 'connection':
'keep-alive', 'x-amzn-requestid': '8c7dcbde-**********************774'},
'RetryAttempts': 0}}

  1. একটি মাইগ্রেশন অপারেশনের অবস্থা পেতে Boto3 কিভাবে ব্যবহার করবেন?

  2. একবারে একাধিক ট্রিগারের বিশদ পেতে Boto3 কীভাবে ব্যবহার করবেন?

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

  4. একটি ক্রলারের বিশদ পেতে পাইথনে Boto3 লাইব্রেরি কীভাবে ব্যবহার করবেন?