python - CloudFront से कनेक्ट करने के लिए boto3 का उपयोग करते समय AWS प्रोफ़ाइल कैसे चुनें




amazon-web-services (3)

मैं बोटो 3 पायथन लाइब्रेरी का उपयोग कर रहा हूं, और AWS CloudFront से जुड़ना चाहता हूं। मुझे सही AWS प्रोफ़ाइल (AWS क्रेडेंशियल) निर्दिष्ट करने की आवश्यकता है, लेकिन आधिकारिक दस्तावेज़ीकरण को देखते हुए, मुझे इसे निर्दिष्ट करने का कोई तरीका नहीं दिख रहा है।

मैं कोड का उपयोग करके क्लाइंट को इनिशियलाइज़ कर रहा हूं: client = boto3.client('cloudfront')

हालाँकि, इसमें यह डिफ़ॉल्ट प्रोफ़ाइल से कनेक्ट करने के लिए उपयोग करता है। मुझे ऐसी कोई विधि नहीं मिली जहां मैं यह निर्दिष्ट कर सकूं कि किस प्रोफ़ाइल का उपयोग करना है।


Boto3 प्रलेखन का यह खंड सहायक है।

यहाँ मेरे लिए क्या काम किया गया है:

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

क्लाइंट कॉल से पहले सत्र कॉन्फ़िगरेशन के लिए प्रोफ़ाइल जोड़ें। boto3.session.Session(profile_name='YOUR_PROFILE_NAME').client('cloudwatch')


मुझे लगता है कि डॉक्स ऐसा करने के तरीके को उजागर करने में अद्भुत नहीं हैं। हालांकि, कुछ समय के लिए यह एक समर्थित सुविधा रही है, और इस पुल अनुरोध में कुछ विवरण हैं । तो ऐसा करने के तीन तरीके हैं:

a) प्रोफ़ाइल के साथ एक नया सत्र बनाएँ

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

b) कोड में डिफ़ॉल्ट सत्र का प्रोफाइल बदलें

    boto3.setup_default_session(profile_name='dev')

c) एक पर्यावरण चर के साथ डिफ़ॉल्ट सत्र का प्रोफ़ाइल बदलें

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




boto3