2015-10-27 16 views
18

Tôi đang sử dụng thư viện python Boto 3 và muốn kết nối với AWS CloudFront. Tôi cần chỉ định Hồ sơ AWS chính xác (Thông tin AWS), nhưng nhìn vào tài liệu chính thức, tôi không thấy cách nào để chỉ định nó.Cách chọn cấu hình AWS khi sử dụng boto3 để kết nối với CloudFront

Tôi khởi tạo cho khách hàng sử dụng mã: client = boto3.client('cloudfront')

Tuy nhiên, kết quả này trong nó bằng cách sử dụng cấu hình mặc định để kết nối. Tôi không thể tìm thấy phương thức mà tôi có thể chỉ định cấu hình nào sẽ sử dụng.

Trả lời

50

Tôi nghĩ tài liệu không tuyệt vời khi phơi bày cách thực hiện việc này. Tuy nhiên, tính năng này đã được hỗ trợ một thời gian và có một số chi tiết trong số pull request này. Vì vậy, có ba cách để làm điều này:

  1. Tạo một phiên mới với cấu hình

    dev = boto3.session.Session(profile_name='dev') 
    
  2. Thay đổi thông tin về phiên mặc định trong mã

    boto3.setup_default_session(profile_name='dev') 
    
  3. Thay đổi tiểu sử của phiên mặc định với biến môi trường

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

nên không biến env được AWS_PROFILE? –

+0

Cảm ơn vì điều đó! dường như không tìm thấy thông tin đó ở bất cứ đâu. Có vẻ như tôi chỉ cần bước 2 để thực hiện công việc này. Bước 1 đã làm gì? (vì biến dev không được sử dụng hoặc chuyển vào bất kỳ thứ gì khác?) – Mark

+7

Đó là các tùy chọn, không phải các bước. Trong tùy chọn đầu tiên, bạn tạo phiên mới để sử dụng thay vì phiên mặc định. Vì vậy, để tạo một máy khách với phiên làm việc đó, bạn sẽ làm một cái gì đó như 'dev.client ('s3')' thay vì 'boto3.client ('s3')' –

7

Đừng này để sử dụng một hồ sơ với tên 'dev':

session = boto3.session.Session(profile_name='dev') 
s3 = session.resource('s3') 
for bucket in s3.buckets.all(): 
    print(bucket.name) 
Các vấn đề liên quan