Boto3 Session "Не удалось найти профиль конфигурации ()" - PullRequest
0 голосов
/ 29 февраля 2020

Так вот, это странно. Я создал конфигурацию в ~ / .aws / config

[profile dev_config]
output = json
region = us-east-1

У меня также есть учетные данные в моем файле ~ / .aws / credentials . К сведению, информация преднамеренно пуста.

[dev_config]
aws_access_key_id = ...
aws_secret_access_key = ...
aws_session_token = ...

Когда я запускаю сценарий python, я выполняю

session = boto3.Session(profile_name="dev_config")
s3client = session.client('s3')

По какой-то причине я получаю сообщение об ошибке

'Не удалось найти профиль конфигурации (dev_config)'

Я абсолютно озадачен этим, поскольку с моим файлом конфигурации и учетными данными все выглядит правильно. Все форумы предполагают, что мой файл конфигурации или учетных данных настроен неправильно, но у меня все есть на месте. Как будто boto3 не может подать мои файлы по какой-то причине. Я запускаю это через pycharm в centos7, кстати. Если у кого-то есть что-то, что я должен проверить, пожалуйста, помогите.

Кроме того, я знаю, что этот вопрос похож на другие посты, но ни один из них не полезен для меня сейчас. Все они указывают на плохую конфигурацию, как я сказал.

Ответы [ 2 ]

0 голосов
/ 02 марта 2020

@ Сюмак, спасибо за ответ. Решение в моем случае оказалось неочевидным, но, надеюсь, это поможет кому-то еще, кто может столкнуться с той же проблемой.

Проблема в том, что для boto3 по умолчанию для файла конфигурации указано местоположение:

AWS_CONFIG_FILE = ~/.aws/config

В файле .env для вашего проекта или в глобальном файле env в вашей системе вам нужно установить местоположение AWS_CONFIG_FILE в фактический путь, а не тот, что указан выше. Таким образом, в моем случае я сделал следующее в своем файле .env.

AWS_CONFIG_FILE = /home/<user>/.aws/config
AWS_SHARED_CREDENTIALS_FILE = /home/<user>/.aws/credentials

Моя программа смогла найти файл конфигурации после этого.

0 голосов
/ 01 марта 2020

Можете ли вы попробовать следующие предложения и проверить, работает ли ваша установка:

Вариант первый:

Редактировать Файл ~ / .aws / config , как показано ниже:

[profile dev_config]
output = json

Редактирование файла ~ / .aws / credentials , как показано ниже:

[dev_config]
aws_access_key_id = ...
aws_secret_access_key = ...
region = us-east-1

Если приведенное выше предложение не работает, перейдите к предложению два ниже.

Вариант второй:

aws configure --profile "dev_config"
  • Запустите приведенную выше команду и снова вставьте свой ключ доступа и секретный ключ. Эта команда обновит ваш профиль учетных данных, что является более простым способом заставить эту настройку работать
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...