ভূমিকা
AWS Glue রিসোর্সগুলোর সাথে যুক্ত ট্যাগগুলো পুনরুদ্ধার করা অনেক সময় ضرুরী হয়, যাতে রিসোর্স ফিল্টার করা, কাস্ট ট্র্যাক করা, বা অটোমেশন করা যায়। এই নিবন্ধে Boto3-এর get_tags API ব্যবহার করে একটি রিসোর্সের সব ট্যাগ পাওয়ার পদ্ধতি দেখানো হয়েছে।
সমস্যা বিবরণ
Boto3 লাইব্রেরি ব্যবহার করে AWS Glue রিসোর্স থেকে ট্যাগগুলো পাওয়া (উদাহরণ: "glue-db: tests")।
রিসোর্স ARN ফরম্যাট
(পূর্বের নিবন্ধের মতোই, টেবিলটি এখানে পুনরাবৃত্তি করা হয়নি সংক্ষিপ্ততার জন্য।)
অ্যালগরিদম / ধাপসমূহ
- boto3 এবং botocore.exceptions ইম্পোর্ট করুন।
- ফাংশনটি একটি বাধ্যতামূলক প্যারামিটার নেবে: resource_arn।
- AWS সেশন এবং Glue ক্লায়েন্ট তৈরি করুন।
glue_client.get_tags()কল করুন প্যারামিটার:ResourceArn=resource_arn।- রেসপন্সে ট্যাগ ডিকশনারি (
Tags) এবং রেসপন্স মেটাডেটা থাকবে। - এক্সেপশন হ্যান্ডল করুন।
উদাহরণ কোড
import boto3
from botocore.exceptions import ClientError
def get_tags_from_resource(resource_arn):
session = boto3.session.Session()
glue_client = session.client('glue')
try:
response = glue_client.get_tags(ResourceArn=resource_arn)
return response
except ClientError as e:
raise Exception("boto3 client error in get_tags_from_resource: " + e.__str__())
except Exception as e:
raise Exception("Unexpected error in get_tags_from_resource: " + e.__str__())
# উদাহরণ কল (নোট: উদাহরণে ফাংশন নাম ভুলে add_tags_in_resource লিখে দেওয়া হয়েছে, সঠিক ফাংশন হলো get_tags_from_resource)
print(get_tags_from_resource("arn:aws:glue:us-east-1:1122225*****88:database/test-db"))
আউটপুট
{'Tags': {'glue-job': 'test'}, 'ResponseMetadata': {'RequestId': 'c9f418b0-8d02-4a26-*************', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 02 Apr 2021 08:04:54 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '27', 'connection': 'keep-alive', 'x-amzn-requestid': 'c9f418b0-8d02-4a26-**************'}, 'RetryAttempts': 0}}
ব্যাখ্যা
রেসপন্সের
Tagsফিল্ডে একটি ডিকশনারি রিটার্ন হয় যেখানে কী-ভ্যালু জোড়া থাকে।উদাহরণে
{'glue-job': 'test'}দেখাচ্ছে যে এই রিসোর্সে "glue-job" নামক ট্যাগ আছে যার ভ্যালু "test"।কোডের উদাহরণ কলের সময় ফাংশন নাম ভুল দেওয়া হয়েছে (
add_tags_in_resource), সঠিক ফাংশন নামget_tags_from_resourceব্যবহার করুন।