কম্পিউটার টিউটোরিয়াল

Boto3 ব্যবহার করে AWS Glue রিসোর্স থেকে ট্যাগ সরানো


ভূমিকা

AWS Glue রিসোর্সগুলো (ডেটাবেস, টেবিল, ক্রলার, জব, ইত্যাদি) ট্যাগিং সাপোর্ট করে। ট্যাগগুলো রিসোর্স ম্যানেজমেন্ট, কাস্ট অ্যালোকেশন, এবং অ্যাক্সেস কন্ট্রোলে সাহায্য করে। এই নিবন্ধে Boto3 ব্যবহার করে Glue রিসোর্স থেকে ট্যাগ সরানোর পদ্ধতি দেখানো হয়েছে।

সমস্যা বিবরণ

Boto3 লাইব্রেরি ব্যবহার করে AWS Glue রিসোর্স থেকে ট্যাগ সরানো (উদাহরণ: "glue-db: tests")।

রিসোর্স ARN ফরম্যাট

প্রতিটি Glue রিসোর্স টাইপের ARN ফরম্যাট নিচে দেওয়া হলো:

Catalogarn:aws:glue:region:account-id:catalog
Databasearn:aws:glue:region:account-id:database/database-name
Tablearn:aws:glue:region:account-id:table/database-name/table-name
Connectionarn:aws:glue:region:account-id:connection/connection-name
Crawlerarn:aws:glue:region:account-id:crawler/crawler-name
Jobarn:aws:glue:region:account-id:job/job-name
Triggerarn:aws:glue:region:account-id:trigger/trigger-name
Development endpointarn:aws:glue:region:account-id:devEndpoint/development-endpoint-name
Machine learning transformarn:aws:glue:region:account-id:mlTransform/transform-id

অ্যালগরিদম / ধাপসমূহ

  1. boto3 এবং botocore.exceptions ইম্পোর্ট করুন।
  2. ফাংশনটি দুটি বাধ্যতামূলক প্যারামিটার নেবে: resource_arn (উপরের টেবিল অনুযায়ী) এবং tags_list (স্ট্রিং লিস্ট, যেমন ["key1", "key2"])।
  3. AWS সেশন এবং Glue ক্লায়েন্ট তৈরি করুন।
  4. glue_client.untag_resource() কল করুন প্যারামিটার: ResourceArn=resource_arn, TagsToRemove=tags_list।
  5. রেসপন্স মেটাডেটা রিটার্ন করবে।
  6. এক্সেপশন হ্যান্ডল করুন।

উদাহরণ কোড

import boto3
from botocore.exceptions import ClientError

def remove_tags_in_resource(resource_arn, tags_list):
    session = boto3.session.Session()
    glue_client = session.client('glue')
    try:
        response = glue_client.untag_resource(
            ResourceArn=resource_arn,
            TagsToRemove=tags_list
        )
        return response
    except ClientError as e:
        raise Exception("boto3 client error in remove_tags_in_resource: " + e.__str__())
    except Exception as e:
        raise Exception("Unexpected error in remove_tags_in_resource: " + e.__str__())

# উদাহরণ: ডেটাবেস থেকে "glue-db" ট্যাগ সরানো
tags_dict = ["glue-db"]
print(remove_tags_in_resource("arn:aws:glue:us-east-1:1122225*****88:database/test-db", tags_dict))

আউটপুট

{'ResponseMetadata': {'RequestId': 'c9f418b0-***************-fb96', '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-******************-fb96'}, 'RetryAttempts': 0}}

ব্যাখ্যা

  • untag_resource API কল করলে নির্দিষ্ট ট্যাগ কীগুলো রিসোর্স থেকে মুছে ফেলা হয়। ট্যাগের ভ্যালু দিতে হয় না, শুধু কী দিলেই চলে।

  • আউটপুটে শুধু ResponseMetadata রিটার্ন হয়, কোনো ট্যাগ ডেটা রিটার্ন হয় না।

  • যদি ট্যাগটি রিসোর্সে না থাকে, তবুও API সফল হয় (idempotent) এবং এরর দেয় না।


  1. Boto3 ব্যবহার করে AWS Glue Data Catalog থেকে একটি টেবিলের নির্দিষ্ট ভার্সন ডিলিট করা

  2. Boto3 ব্যবহার করে AWS Glue Data Catalog থেকে একটি টেবিল ডিলিট করা

  3. Boto3 ব্যবহার করে AWS Glue থেকে একটি Glue Job ডিলিট করা

  4. Boto3 ব্যবহার করে AWS Glue Data Catalog থেকে একটি ক্রলার ডিলিট করা