এই প্রবন্ধে, আমরা দেখব কিভাবে কাজের নামের একটি প্রদত্ত তালিকার জন্য রিসোর্স মেটাডেটার একটি তালিকা পেতে হয়।
সমস্যা বিবৃতি - আপনার অ্যাকাউন্টে কাজগুলি পেতে পাইথনে boto3 লাইব্রেরি ব্যবহার করুন৷ উদাহরণস্বরূপ, আপনার অ্যাকাউন্টে উপলব্ধ চাকরির বিবরণ পান।
এই সমস্যা সমাধানের জন্য পদ্ধতি/অ্যালগরিদম
ধাপ 1 − ব্যতিক্রমগুলি পরিচালনা করতে boto3 এবং botocore ব্যতিক্রমগুলি আমদানি করুন৷
৷ধাপ 2 - এই ফাংশনের জন্য কোন প্যারামিটারের প্রয়োজন নেই। এটি ব্যবহারকারীর অ্যাকাউন্টের জন্য সমস্ত তালিকাভুক্ত কাজ আনবে এবং তারপর প্রতিটি কাজের মেটাডেটা প্রদর্শন করবে।
ধাপ 3 - boto3 লাইব্রেরি ব্যবহার করে একটি AWS সেশন তৈরি করুন। অঞ্চলের_নাম নিশ্চিত করুন ডিফল্ট প্রোফাইলে উল্লেখ করা আছে। যদি এটি উল্লেখ না থাকে, তাহলে স্পষ্টভাবে অঞ্চল_নাম পাস করুন সেশন তৈরি করার সময়।
পদক্ষেপ 4৷ − আঠার জন্য একটি AWS ক্লায়েন্ট তৈরি করুন৷
৷ধাপ 5 − এখন ব্যবহারকারীর অ্যাকাউন্টে তালিকাভুক্ত সমস্ত কাজ পেতে list_jobs ফাংশন ব্যবহার করুন।
ধাপ 6 − batch_get_jobs কে কল করুন এবং পূর্ববর্তী ফাংশনে আনা কাজের নাম পাস করুন।
পদক্ষেপ 7 - এটি কাজের_তালিকা প্রদান করে এবং প্রতিটি কাজের মেটাডেটা।
ধাপ 8 − কাজ চেক করার সময় যদি কিছু ভুল হয়ে থাকে তাহলে জেনেরিক ব্যতিক্রম হ্যান্ডেল করুন।
উদাহরণ
ব্যবহারকারীর অ্যাকাউন্ট -
-এ তালিকাভুক্ত প্রতিটি কাজের বিবরণ আনতে নিম্নলিখিত কোডটি ব্যবহার করুনimport boto3
from botocore.exceptions import ClientError
def get_resource_maetadata_of_glue_jobs():
session = boto3.session.Session()
glue_client = session.client('glue')
try:
list_of_jobs = glue_client.list_jobs()
response = glue_client.batch_get_jobs(JobNames=list_of_jobs['JobNames'])
return list_of_jobs, response
except ClientError as e:
raise Exception( "boto3 client error in get_resource_maetadata_of_glue_jobs: " + e.__str__())
except Exception as e:
raise Exception( "Unexpected error in get_resource_maetadata_of_glue_jobs: " + e.__str__())
a, b = get_resource_metadat_of_glue_jobs()
#List of Jobs
print(a)
#Resource metadata of each job
print(b) আউটপুট
#List of Jobs
{'JobNames': ['01_PythonShellTest1', '01_pythonSHELL_14012021'],
'NextToken':
'eyJleHBpcmF0aW9uIjp7InNlY29uZHMiOjE2MTQxNzE2OTksIm5hbm9zIjo1MTYwMDAwMDB
9LCJsYXN0RXZhbHV
zFiMzAzNzAxMzRmNDk3NWM3M2MyMjhjYTk5MDgzZTA3YjQ0ZWEyOTZlIn19fQ==',
'ResponseMetadata': {'RequestId': '5d3eb19a-41f5-b24e-2d59ed9664b5',
'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Tue, 23 Feb 2021
13:01:39 GMT', 'content-type': 'application/x-amz-json-1.1', 'contentlength': '1134', 'connection': 'keep-alive', 'x-amzn-requestid':
'5d3eb19a-41f5-b24e-2d59ed9664b5'}, 'RetryAttempts': 0}}
#Resource metadata of each job
{'Jobs': [{'Name': '01_PythonShellTest1', 'Role':
'arn:aws:iam::1234:role/dev-edl-glue-role', 'CreatedOn':
datetime.datetime(2021, 1, 6, 19, 59, 19, 387000, tzinfo=tzlocal()),
'LastModifiedOn': datetime.datetime(2021, 2, 9, 21, 47, 31, 614000,
tzinfo=tzlocal()), 'ExecutionProperty': {'MaxConcurrentRuns': 1},
'Command': {'Name': 'pythonshell', 'ScriptLocation':
's3://test/01_pythonShellTest/test1/01_PythonShellTest1.py',
'PythonVersion': '3'}, 'DefaultArguments': {'--job-bookmark-option':
'job-bookmark-disable', '--job-language': 'python'}, 'MaxRetries': 0,
'AllocatedCapacity': 0, 'Timeout': 2880, 'MaxCapacity': 0.0625,
'GlueVersion': '1.0'},
{'Name': '01_pythonSHELL_14012021', 'Role': 'arn:aws:iam::1234:role/devedl-glue-role', 'CreatedOn': datetime.datetime(2021, 1, 14, 20, 22, 40,
965000, tzinfo=tzlocal()), 'LastModifiedOn': datetime.datetime(2021, 1,
14, 20, 22, 40, 965000, tzinfo=tzlocal()), 'ExecutionProperty':
{'MaxConcurrentRuns': 1}, 'Command': {'Name': 'pythonshell',
'ScriptLocation': 's3://test/01_pythonSHELL_14012021_123.py',
'PythonVersion': '3'}, 'DefaultArguments': {'--job-bookmark-option':
'job-bookmark-disable'}, 'MaxRetries': 0, 'AllocatedCapacity': 0,
'Timeout': 2880, 'MaxCapacity': 0.0625, 'GlueVersion': '1.0'}]}