Python AWS:找不到配置配置文件(MyName)

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]

每次我想用AWS配置某些东西时,都会出现以下错误:

"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