Python AWS:找不到配置配置文件(MyName)
每次我想用AWS配置某些东西时,都会出现以下错误:Python AWS:找不到配置配置文件(MyName),python,amazon-web-services,credentials,aws-cli,Python,Amazon Web Services,Credentials,Aws Cli,每次我想用AWS配置某些东西时,都会出现以下错误: "The config profile (myname) could not be found" 比如:aws配置 我正在使用Python 3.4,我想使用AWS CLI密钥环加密我的凭据 您可以检查~/.aws/config下的config文件吗?您可能有一个名为[myname]的无效部分,类似这样的内容(这是一个示例) 只需删除[myname]部分(包括此配置文件的所有内容),就可以再次运行awscli如下所示 [profilename]
"The config profile (myname) could not be found"
比如:aws配置
我正在使用Python 3.4,我想使用AWS CLI密钥环加密我的凭据 您可以检查
~/.aws/config
下的config
文件吗?您可能有一个名为[myname]的无效部分,类似这样的内容(这是一个示例)
只需删除[myname]部分(包括此配置文件的所有内容),就可以再次运行aws
cli如下所示
[profilename]
region=us-east-1
output=text
示例cmd
aws --profile myname CMD opts
您是否实际设置了特定用户?AWS中的演练设置指南介绍了如何设置默认用户,然后介绍了如何设置其他用户。如果您没有完成完整的设置,您将只有一个默认块,并且您的myName将不会被创建。我认为中的AWS文档中缺少一些内容,它没有提到您应该编辑文件
~/.AWS/config
,以添加您的用户名配置文件。有两种方法可以做到这一点:
~/.aws/config
或aws配置--配置“您的用户名”
遇到了类似的问题,发现下面的链接比这里提供的答案更有用。我想这是由于AWS CLI的更新,因为提供了答案
基本上,它有助于创建两个不同的文件(即一个用于常规配置相关信息,另一个用于凭据相关信息)。当我移动到一台新机器时,我遇到了这个问题,随身携带了我的AWS_DEFAULT_PROFILE环境变量,但没有我的~/.AWS目录。在取消设置该变量或正确配置命名配置文件之前,我无法使任何awscli命令工作。但即使是aws configure命令也被破坏了,这让事情变得有点棘手。假设您手边有一个类似Unix的shell:
- 要确定会话中可能包含哪些AWS特定变量:
env | grep AWS
- 如果您没有看到此处列出的AWS_默认_配置文件,则此答案不适用于您
- 要临时删除默认配置文件:
unset AWS\u default\u profile
- 要配置默认配置文件:
aws--profile foo configure
- 要重置默认配置文件变量:
exec$SHELL
- 要测试您的新设置:
aws iam get user
.aws/config
文件如下所示:
[profile myname]
aws_access_key_id = ....
aws_secret_access_key = ....
region=us-west-1
我想原因是我基于我的.aws/credentials
文件,它需要为Zappa和其他一些aws/elastic beanstalk工具提供[profile myname]
当我将config
更改为此时,效果非常好:
[myname]
aws_access_key_id = ....
aws_secret_access_key = ....
region=us-west-1
确保您处于正确的虚拟环境中。我更新了PyCharm,出于某种原因,我不得不再次将我的项目指向我的VE。打开终端时,我在尝试zappa更新时不在VE中(并出现此错误)。重新启动PyCharm,一切恢复正常。使用配置文件有点棘手。文件可在以下网址找到: (但您需要注意环境变量,如AWS_PROFILE) 将概要文件与aws cli一起使用需要一个配置文件(默认为
~/.aws/config
或使用aws\u config\u文件设置)。
供参考的示例配置文件:
`
`
Env变量AWS_PROFILE
从AWS配置通知AWS cli要使用的配置文件。它不是配置文件的替代文件,如AWS\u ACCESS\u KEY\u ID
/AWS\u SECRET\u ACCESS\u KEY
用于~/.AWS/credentials
另一个有趣的事实是,如果设置了AWS\u PROFILE
,并且设置了AWS\u ACCESS\u KEY\u ID
和AWS\u SECRET\u ACCESS\u KEY
环境变量,然后由AWS\u ACCESS\u KEY\u ID
和AWS\u SECRET\u ACCESS\u KEY
提供的凭据将覆盖由AWS\u profile
提供的配置文件中的凭据。在我的例子中,环境变量上名为“AWS\u profile”的变量具有旧值
在我的例子中,我使用的是AWS CLI工具的Docker方法,我没有充分阅读说明,意识到我必须使我的凭证目录对Docker容器可见。
而不是
docker-run--rm-it-amazon/aws-cli:latest命令args…
我需要做:
docker run--rm-it-v~/.aws:/root/.aws amazon/aws cli:latest command args…
另请参见:我认为这应该没有方括号中的“profile”?@MarkusKöhler:正确,有相同的问题。他们在某些地方的文档则相反:(可能已经过时)上述其他答案很有用,但我认为您强调了一些重要的内容:如果您在aws配置命令行实用程序中使用aws配置文件协议,它将自动更新.aws/configure文件,这会更容易。起初,我试图在VIM中编辑它,但无法正确编辑。另外:我认为必须使lambda和IAM默认区域相同,才能使其正常工作。下拉列表中的区域名称不清楚,但区域名称到区域的映射如下:在未指定输出=json或文本的情况下,我的构建也失败。您能否解释如何使用aws configure
创建新配置文件?似乎您需要手动引导配置文件。谢谢。我已经通过编辑~/.aws/config和~/.aws/credentials解决了我的问题。配置文件需要[profile XXX]但是凭据文件不需要配置文件前缀。与AWS_profile
env var相同的问题。只需unset AWS_profile
,然后执行AWS configure*命令。我不小心删除了我的.AWS文件夹。你的向导帮助了我。
[myname]
aws_access_key_id = ....
aws_secret_access_key = ....
region=us-west-1
[profile PROFILE_NAME]
output=json
region=us-west-1
aws_access_key_id=foo
aws_secret_access_key=bar