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

Boto3 ব্যবহার করে AWS Secret Manager-এ নির্দিষ্ট লোকেশন থেকে সিক্রেটের ডিটেইলস পাওয়া


সমস্যা: পাইথনে boto3 লাইব্রেরি ব্যবহার করে AWS Secret Manager-এ নির্দিষ্ট লোকেশন থেকে সিক্রেটের ডিটেইলস পাওয়া।

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

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

  • ধাপ ২: secret_stored_location আবশ্যিক প্যারামিটার।

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

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

  • ধাপ ৫: describe_secret কল করুন এবং secret_stored_location কে SecretId হিসেবে পাস করুন।

  • ধাপ ৬: এটি সিক্রেটের মেটাডেটা রিটার্ন করে।

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

উদাহরণ কোড

AWS Secret Manager-এ সিক্রেটের ডিটেইলস পেতে নিচের কোডটি ব্যবহার করুন:

import boto3
from botocore.exceptions import ClientError

def get_secret_details(secret_stored_location):
    session = boto3.session.Session()
    s3_client = session.client('secretmanager')
    try:
        response = s3_client.describe_secret(SecretId=secret_stored_location)
        return response
    except ClientError as e:
        raise Exception("boto3 client error in get_secret_details: " + e.__str__())
    except Exception as e:
        raise Exception("Unexpected error in get_secret_details: " + e.__str__())

a = get_secret_details('/secrets/aws')
print(a)

আউটপুট

{'ARN': 'arn:aws:secretsmanager:us-east-1:***************:secret:/secrets/aws-wr1Aj6', 'Name': '/secrets/aws', 'LastChangedDate': datetime.datetime(2021, 4, 3, 17, 6, 57, 601000, tzinfo=tzlocal()), 'LastAccessedDate': datetime.datetime(2021, 4, 3, 5, 30, tzinfo=tzlocal()), 'VersionIdsToStages': {'f5308bed-7c23-4d47-a32b-8f2a5f044e53': ['AWSCURRENT'], 'fcdc1b5b-2a35-4d12-9d84-65d529651d2e': ['AWSPREVIOUS']}, 'ResponseMetadata': {'RequestId': 'b32fe48d**************ab', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sat, 03 Apr 2021 09:40:48 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '197', 'connection': 'keep-alive', 'x-amzn-requestid': *********************************}, 'RetryAttempts': 0}}

  1. Boto3 ব্যবহার করে একটি একক ক্রলারের ডিটেইলস পাওয়া

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

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

  4. Boto3 লাইব্রেরি ব্যবহার করে Python-এ একটি ক্রলারের ডিটেইলস পাওয়া