Boto3 会话 "The config profile () could not be found"

Boto3 Session "The config profile () could not be found"

现在,这很奇怪。我在 ~/.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')

出于某种原因,我得到了错误

'The config profile (dev_config) could not be found'

我完全被这个问题难住了,因为我的配置和凭据文件似乎一切都是正确的。所有论坛都建议我的配置或凭据文件设置错误,但我已准备就绪。就像 boto3 出于某种原因无法归档我的文件。我在 centos7 中 运行 通过 pycharm 顺便说一句。如果有人还有什么我应该检查的,请帮忙。

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

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

选项一:

编辑~/.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"
  • 运行 上述命令并再次粘贴您的访问密钥和密钥。此命令将更新您的凭据配置文件,这是使此设置正常工作的更简单方法

@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

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

我遇到了类似的问题,正如其他人所说,Boto3 配置文件的默认位置是 ~/.aws/config。因为我在 Windows 上使用 Git bash,这条路径对我来说指向 C:\Windows\System32\config\systemprofile\.aws\config,但它已经有 Boto3 抱怨的 AWS 配置文件。

结果是此路径的 64 位版本 C:\Windows\SysWOW64\config\systemprofile\.aws\config Boto3 期望配置文件不存在。一旦我将配置和凭据文件复制到此文件夹中,Boto3 就停止了抱怨。