ক্লাউডফ্রন্টের সাথে সংযোগ স্থাপন করতে বোটো 3 ব্যবহার করার সময় কীভাবে AWS প্রোফাইল চয়ন করবেন profile


127

আমি বোটো 3 অজগর গ্রন্থাগারটি ব্যবহার করছি, এবং এডাব্লুএস ক্লাউডফ্রন্টের সাথে সংযোগ করতে চাই। আমাকে সঠিক এডাব্লুএস প্রোফাইল (এডাব্লুএস শংসাপত্র) নির্দিষ্ট করতে হবে, তবে অফিসিয়াল ডকুমেন্টেশনের দিকে তাকিয়ে আমি এটি নির্দিষ্ট করার কোনও উপায় দেখতে পাচ্ছি না।

আমি কোডটি ব্যবহার করে ক্লায়েন্টটি শুরু করছি: client = boto3.client('cloudfront')

যাইহোক, এটির ফলাফল সংযোগের জন্য ডিফল্ট প্রোফাইল ব্যবহার করে। কোন পদ্ধতিটি ব্যবহার করতে হবে তা নির্দিষ্ট করতে পারে এমন কোনও পদ্ধতি আমি খুঁজে পাইনি।


আরও দেখুন: প্রোফাইলগুলি সহ এডাব্লুএস এস 3 থেকে একটি ফাইল পড়ুন এবং ডাউনলোড করুন
মার্টিন থোমা

আপনি কোডে কী ব্যবহার করার চেষ্টা করেছেন? (এছাড়াও কোড থেকে এটি আড়াল করার জন্য আপনি এনভির ভার ব্যবহার করতে পারেন)client = boto3.client('s3', aws_access_key_id = '<access-key>', aws_secret_access_key = '<secret-key>')
ইভান ক্যারাসকো কুইরোজ

উত্তর:


224

আমি মনে করি ডকসগুলি এটি কীভাবে করবেন তা প্রকাশের ক্ষেত্রে দুর্দান্ত নয়। এটি কিছু সময়ের জন্য একটি সমর্থনযোগ্য বৈশিষ্ট্য হয়ে দাঁড়িয়েছে, তবে এই টানার অনুরোধে কিছু বিশদ রয়েছে ।

সুতরাং এটি করার জন্য তিনটি ভিন্ন উপায় রয়েছে:

বিকল্প ক) প্রোফাইল সহ একটি নতুন সেশন তৈরি করুন

    dev = boto3.session.Session(profile_name='dev')

বিকল্প বি) কোডে ডিফল্ট সেশনের প্রোফাইল পরিবর্তন করুন

    boto3.setup_default_session(profile_name='dev')

বিকল্প সি) পরিবেশের পরিবর্তনশীল সহ ডিফল্ট সেশনের প্রোফাইল পরিবর্তন করুন

    $ AWS_PROFILE=dev ipython
    >>> import boto3
    >>> s3dev = boto3.resource('s3')

1
Env পরিবর্তনশীলটি কি AWS_PROFILE হওয়া উচিত নয়?
স্টেফানো এম

তার জন্য ধন্যবাদ! এখনও পর্যন্ত কোথাও তথ্য খুঁজে পাওয়া যায় নি। মনে হচ্ছে এই কাজটি করার জন্য আমার কেবল দ্বিতীয় ধাপের দরকার ছিল। পদক্ষেপ 1 কী করেছিল? (যেহেতু দেব পরিবর্তনশীল ব্যবহৃত বা অন্য কিছু করতে গেছেন তাই না?)
মার্ক

40
সেগুলি বিকল্প নয়, পদক্ষেপ নয়। প্রথম বিকল্পে আপনি ডিফল্ট সেশনের চেয়ে ব্যবহার করার জন্য একটি নতুন সেশন তৈরি করেন। সুতরাং সেই অধিবেশন দিয়ে একটি ক্লায়েন্ট তৈরি করতে আপনি এর dev.client('s3')পরিবর্তে কিছু করতে চাইবেনboto3.client('s3')
জর্ডন ফিলিপস

বিষয় অফ, ipythonআমার জন্য দরকারী ছিল।
মাইক ডি

7
প্রোফাইল তালিকাটি ব্যবহার করে পান boto3.session.Session().available_profiles- এটি একটি তালিকা। তারপরে আপনি যা চান @ জোর্ডান-ফিলিপস ব্যবহার করুন।
দাইসুক আরমাকি

35

'দেব' নামের একটি প্রোফাইল ব্যবহার করতে এটি করুন:

session = boto3.session.Session(profile_name='dev')
s3 = session.resource('s3')
for bucket in s3.buckets.all():
    print(bucket.name)

24

বোটো 3 ডকুমেন্টেশনের এই বিভাগটি সহায়ক।

আমার জন্য যা কাজ করেছে তা এখানে:

session = boto3.Session(profile_name='dev')
client = session.client('cloudfront')

5

ক্লায়েন্ট কল করার আগে সেশন কনফিগারেশনে কেবল প্রোফাইল যুক্ত করুন। boto3.session.Session(profile_name='YOUR_PROFILE_NAME').client('cloudwatch')

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.