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

Boto3 ব্যবহার করে AWS Glue ক্যাটালগে ওয়ার্কফ্লো এর বিবরণ আপডেট করা


ভূমিকা

AWS Glue হলো একটি সার্ভারলেস ডেটা ইন্টিগ্রেশন সার্ভিস যা ETL (Extract, Transform, Load) ওয়ার্কফ্লো ম্যানেজ করার সুবিধা দেয়। Boto3 হলো AWS SDK for Python, যা পাইথন থেকে AWS সার্ভিসগুলোর সাথে ইন্টারঅ্যাক্ট করতে দেয়। এই নিবন্ধে Boto3 ব্যবহার করে একটি বিদ্যমান Glue ওয়ার্কফ্লোর বিবরণ (বর্ণনা, ডিফল্ট রান প্রপার্টি ইত্যাদি) আপডেট করার পদ্ধতি দেখানো হয়েছে।

সমস্যা বিবরণ

পাইথনে boto3 লাইব্রেরি ব্যবহার করে আপনার অ্যাকাউন্টে তৈরি একটি ওয়ার্কফ্লোর বিবরণ আপডেট করা।

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

  1. boto3 এবং botocore.exceptions.ClientError ইম্পোর্ট করুন এক্সেপশন হ্যান্ডলিংয়ের জন্য।
  2. ফাংশনটি workflow_name (বাধ্যতামূলক), description (ঐচ্ছিক), এবং default_run_properties (ঐচ্ছিক) গ্রহণ করবে।
  3. boto3.session.Session() ব্যবহার করে AWS সেশন তৈরি করুন। নিশ্চিত করুন যে ডিফল্ট প্রোফাইলে region_name সেট আছে, না হলে সেশন তৈরি করার সময় এক্সপ্লিসিটলি রিজন দিন।
  4. session.client('glue') দিয়ে Glue ক্লায়েন্ট তৈরি করুন।
  5. glue_client.update_workflow() কল করুন, প্যারামিটার হিসেবে Name=workflow_name, Description=description, DefaultRunProperties=default_run_properties পাস করুন।
  6. ফাংশনটি ওয়ার্কফ্লোর মেটাডেটা রিটার্ন করবে।
  7. জেনেরিক এক্সেপশন হ্যান্ডল করুন।

উদাহরণ কোড

import boto3
from botocore.exceptions import ClientError

def update_resource_detail_of_workflow(workflow_name, description=None, default_run_properties=None):
    session = boto3.session.Session()
    glue_client = session.client('glue')
    try:
        response = glue_client.update_workflow(
            Name=workflow_name,
            Description=description,
            DefaultRunProperties=default_run_properties
        )
        return response
    except ClientError as e:
        raise Exception("boto3 client error in update_resource_detail_of_workflow: " + e.__str__())
    except Exception as e:
        raise Exception("Unexpected error in update_resource_detail_of_workflow: " + e.__str__())

# উদাহরণ কল
a = update_resource_detail_of_workflow('dev-aiml-naviga-ods-load', 'test')
print(a)

আউটপুট

{'Name': 'dev-aiml-naviga-ods-load', 'ResponseMetadata': {'RequestId': 'b328d064-24ab-48c4-b058-852387a3d474', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sat, 27 Feb 2021 13:57:37 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '2655', 'connection': 'keep-alive', 'x-amzn-requestid': 'b328d064-24ab-48c4-b058-852387a3d474'}, 'RetryAttempts': 0}}

ব্যাখ্যা

  • ফাংশনটি ওয়ার্কফ্লোর নাম, নতুন বর্ণনা, এবং ডিফল্ট রান প্রপার্টি গ্রহণ করে আপডেট করে।

  • আউটপুটে ResponseMetadata-তে HTTP স্ট্যাটাস কোড ২০০ দেখাচ্ছে যে রিকোয়েস্ট সফল হয়েছে।

  • DefaultRunProperties হলো একটি ডিকশনারি যা ওয়ার্কফ্লো রান করার সময় ডিফল্ট আর্গুমেন্ট হিসেবে পাস হয়।

সর্বোত্তম অনুশীলন

প্রোডাকশন এনভায়রনমেন্টে AWS 크েডেনশিয়াল নিরাপদে রাখার জন্য এনভায়রনমেন্ট ভেরিয়েবল বা AWS IAM রোল ব্যবহার করুন, কোডে হার্ডকোড না করুন।


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

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

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

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