Boto3 会话“找不到配置文件 ()”

新手上路,请多包涵

现在,这是一个奇怪的。我在 ~/.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 出于某种原因无法归档我的文件。我在 centos7 btw 中通过 pycharm 运行它。如果有人还有什么我应该检查的,请帮忙。

另外,我知道这是一个与其他帖子类似的问题,但现在这些都对我没有帮助。就像我说的,它们都指向错误的配置。

原文由 marco 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 567
2 个回答

@Syumak,感谢您的回复。我的解决方案结果并不明显,但希望这能帮助其他可能遇到同样问题的人。

问题是 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

之后我的程序能够找到配置文件。

原文由 marco 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以尝试以下建议并检查您的设置是否有效:

选项一:

编辑 ~/.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"

  • 运行上面的命令并再次粘贴您的访问密钥和秘密密钥。此命令将更新您的凭据配置文件,这是使此设置正常工作的更简单方法

原文由 aksyuma 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进