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

Boto3 ব্যবহার করে AWS Glue-এ থাকা সব ট্রিগার পেজিনেট করা


সমস্যা: পাইথনে boto3 লাইব্রেরি ব্যবহার করে আপনার অ্যাকাউন্টে তৈরি AWS Glue Data Catalog-এ থেকে সব ট্রিগার পেজিনেট করা।

পদ্ধতি/অ্যালগরিদম

  • ধাপ ১: boto3 এবং botocore এক্সেপশন ইম্পোর্ট করুন এক্সেপশন হ্যান্ডল করার জন্য।

  • ধাপ ২: max_items, page_size এবং starting_token এই ফাংশনের জন্য অপশনাল প্যারামিটার।

    • max_items নির্দেশ করে মোট কতগুলো রেকর্ড রিটার্ন করতে হবে। যদি উপলব্ধ রেকর্ড max_items-এর চেয়ে বেশি হয়, তবে পেজিনেশন রিজিউম করার জন্য রেসপন্সে NextToken দেওয়া হবে।

    • page_size প্রতিটি পেজের সাইজ নির্দেশ করে।

    • starting_token পেজিনেশনে সাহায্য করে এবং এটি পূর্বের রেসপন্স থেকে NextToken ব্যবহার করে।

  • ধাপ ৩: boto3 লাইব্রেরি ব্যবহার করে AWS সেশন তৈরি করুন। নিশ্চিত করুন region_name ডিফল্ট প্রোফাইলে আছে। না থাকলে সেশন তৈরি করার সময় সিদ্ধা region_name পাস করুন।

  • ধাপ ৪: glue-এর জন্য AWS ক্লায়েন্ট তৈরি করুন।

  • ধাপ ৫: get_triggers ব্যবহার করে সকল ট্রিগারের ডিটেইলস ধারণকারী একটি paginator অবজেক্ট তৈরি করুন।

  • ধাপ ৫: paginate ফাংশন কল করুন এবং max_items, page_size এবং starting_token কে PaginationConfig প্যারামিটার হিসেবে পাস করুন।

  • ধাপ ৬: এটি max_size এবং page_size অনুযায়ী রেকর্ডের সংখ্যা রিটার্ন করে।

  • ধাপ ৭: পেজিনেশনের সময় যদি কোনো সমস্যা হয় তবে জেনেরিক এক্সেপশন হ্যান্ডল করুন।

উদাহরণ কোড

ইউজার অ্যাকাউন্টে তৈরি সকল ট্রিগার পেজিনেট করতে নিচের কোডটি ব্যবহার করুন:

import boto3
from botocore.exceptions import ClientError

def paginate_through_triggers(max_items=None, page_size=None, starting_token=None):
    session = boto3.session.Session()
    glue_client = session.client('glue')
    try:
        paginator = glue_client.get_paginator('get_triggers')
        response = paginator.paginate(PaginationConfig={
            'MaxItems': max_items,
            'PageSize': page_size,
            'StartingToken': starting_token}
        )
        return response
    except ClientError as e:
        raise Exception("boto3 client error in paginate_through_triggers: " + e.__str__())
    except Exception as e:
        raise Exception("Unexpected error in paginate_through_triggers: " + e.__str__())

page_itr = paginate_through_tables("test_db", 2, 5)
for page in page_itr:
    print(page['Triggers'])

আউটপুট

[{'Name': 'file-passed', 'WorkflowName': 'data-tx', 'Type': 'CONDITIONAL', 'State': 'ACTIVATED', 'Actions': [{'JobName': 'data-event'}], 'Predicate': {'Logical': 'ANY', 'Conditions': [{'LogicalOperator': 'EQUALS', 'JobName': 'data-worker', 'State': 'SUCCEEDED'}]}}, {'Name': 'file-passed-to-acc', 'WorkflowName': 'tick-data', 'Type': 'CONDITIONAL', 'State': 'ACTIVATED', 'Actions': [{'JobName': 'tick-data'}], 'Predicate': {'Logical': 'ANY', 'Conditions': [{'LogicalOperator': 'EQUALS', 'JobName': 'tick-data', 'State': 'SUCCEEDED'}]}}]

  1. Boto3 ব্যবহার করে AWS অ্যাকাউন্টে সমস্ত ট্রিগারের তালিকা পাওয়া

  2. Boto3 ব্যবহার করে AWS Glue Data Catalog থেকে সব ডেটাবেসের ডিটেইলস পাওয়া

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

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