Używam biblioteki Python Boto 3 i chcę połączyć się z AWS CloudFront. Muszę określić prawidłowy profil AWS (poświadczenia AWS), ale patrząc na oficjalną dokumentację, nie widzę sposobu, aby go określić.
Inicjalizuję klienta za pomocą kodu:
client = boto3.client('cloudfront')
Jednak powoduje to użycie domyślnego profilu do połączenia. Nie mogłem znaleźć metody, w której mogę określić, którego profilu użyć.
python
amazon-web-services
boto3
Nader A. Jabbar
źródło
źródło
client = boto3.client('s3', aws_access_key_id = '<access-key>', aws_secret_access_key = '<secret-key>')
Odpowiedzi:
Myślę, że doktorzy nie są wspaniali w ujawnianiu, jak to zrobić. Jest to jednak obsługiwana funkcja od jakiegoś czasu i jest kilka szczegółów w tym żądaniu ściągnięcia .
Można to zrobić na trzy różne sposoby:
Opcja A) Utwórz nową sesję z profilem
Opcja B) Zmień profil domyślnej sesji w kodzie
Opcja C) Zmień profil sesji domyślnej za pomocą zmiennej środowiskowej
źródło
dev.client('s3')
zamiastboto3.client('s3')
ipython
również mi się przydało.boto3.session.Session().available_profiles
- to lista. Następnie użyj tego, który chcesz @ jordan-phillips.Zrób to, aby użyć profilu o nazwie „dev”:
źródło
Ta sekcja dokumentacji boto3 jest pomocna.
Oto, co zadziałało dla mnie:
źródło
Wystarczy dodać profil do konfiguracji sesji przed wezwaniem klienta.
boto3.session.Session(profile_name='YOUR_PROFILE_NAME').client('cloudwatch')
źródło