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

Boto3 ব্যবহার করে AWS Glue ডেটা ক্যাটালগে ওয়ার্কফ্লো বন্ধ করা


ভূমিকা

AWS Glue ওয়ার্কফ্লো (Workflow) একাধিক জব এবং ক্রলার অর্কেস্ট্রেট করে। একটি রানিং ওয়ার্কফ্লো বন্ধ করতে stop_workflow_run API ব্যবহার করা হয়, যার জন্য ওয়ার্কফ্লোর নাম এবং রান আইডি (RunId) দরকার।

সমস্যা বিবরণ

পাইথনে boto3 লাইব্রেরি ব্যবহার করে একটি ওয়ার্কফ্লো বন্ধ করা।

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

  1. boto3 এবং botocore.exceptions ইম্পোর্ট করুন।
  2. ফাংশনটি দুটি বাধ্যতামূলক প্যারামিটার নেবে: workflow_name এবং run_id।
  3. AWS সেশন এবং Glue ক্লায়েন্ট তৈরি করুন।
  4. glue_client.stop_workflow_run(Name=workflow_name, RunId=run_id) কল করুন।
  5. রেসপন্স মেটাডেটা এবং বন্ধ করা রান আইডি রিটার্ন করবে।
  6. এক্সেপশন হ্যান্ডল করুন।

উদাহরণ কোড

import boto3
from botocore.exceptions import ClientError

def stop_a_workflow(workflow_name, run_id):
    session = boto3.session.Session()
    glue_client = session.client('glue')
    try:
        response = glue_client.stop_workflow_run(Name=workflow_name, RunId=run_id)
        return response
    except ClientError as e:
        raise Exception("boto3 client error in stop_a_workflow: " + e.__str__())
    except Exception as e:
        raise Exception("Unexpected error in stop_a_workflow: " + e.__str__())

# উদাহরণ: run_id দরকার, এখানে শুধু workflow_name দিয়ে কল করা হয়েছে (এরর হবে)
print(stop_a_workflow("test-daily", "wr_64e880240692fddd5e1b19aed587f856bc20a96f54bc"))

আউটপুট

{'RunId': 'wr_64e880240692fddd5e1b19aed587f856bc20a96f54bc', 'ResponseMetadata': {'RequestId': '782e953b-8ee3-4876-9b2c-cd35e147b513', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sun, 28 Mar 2021 08:11:02 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '79', 'connection': 'keep-alive', 'x-amzn-requestid': '782e953b-********************************13'}, 'RetryAttempts': 0}}

ব্যাখ্যা

  • RunId পাওয়ার জন্য start_workflow_run বা get_workflow_run ব্যবহার করুন।

  • ওয়ার্কফ্লো বন্ধ করলে এর সব চাইল্ড জব/ক্রলারও বন্ধ হয়ে যেতে পারে (ওয়ার্কফ্লো কনফিগারেশনের ওপর নির্ভর করে)।

  • উদাহরণ কোডে কলের সময় run_id পাস করা হয়নি (মুল কোডে), সঠিক ব্যবহার উপরে দেখানো হয়েছে।


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

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

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

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