এই প্রবন্ধে, আমরা দেখব কিভাবে কাজের নামের একটি প্রদত্ত তালিকার জন্য রিসোর্স মেটাডেটার একটি তালিকা পেতে হয়।
সমস্যা বিবৃতি - আপনার অ্যাকাউন্টে কাজগুলি পেতে পাইথনে 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'}]}