AWS Elastic Beanstalk 命令不返回任何输出

Posted

技术标签:

【中文标题】AWS Elastic Beanstalk 命令不返回任何输出【英文标题】:AWS Elastic Beanstalk commands return no output 【发布时间】:2018-07-18 08:19:41 【问题描述】:

我对 Amazon Web Services 非常陌生,并且一直在尝试与他们一起学习边做边学的方法。

总之,我试图为我的 web 应用程序使用弹性 beanstalk 命令行界面设置 Git。但是,我想使用我的 SSH 密钥对进行身份验证(aws-access-id,secret),并且由于我的天真和无知,我只是提供了这些信息(SSH 密钥文件),现在我无法让它工作.更具体的说明如下。

我已经设置了带有 Git 的项目目录,以便它可以工作。然后我打开 git bash 窗口 MINGW64(我在 Windows 10 上)并尝试设置 eb。

$ eb init

然后它告诉我我的凭据没有设置并要求我提供 aws-access-id 和密码。我刚刚设置了 SSH 密钥对并尝试输入这些文件;尝试有什么害处?事实证明,EB 失败。现在,这些实例似乎运行良好,在 AWS 控制台网站上查看它们的状态。但是,无论我在 bash 中输入什么:

$ eb init

$ eb status

$ eb deploy

$

没有输出。甚至没有错误。它只是默默地回到等待我的新命令。

当对这些命令使用 --debug 选项时,会返回一长串操作,以

结尾
botocore.parsers.ResponseParserError: Unable to parse response (no element found: line 1, column 0), invalid XML received:
b''

我以为我可以注销或类似的东西,这样我就可以输入我从一开始就搞砸的正确凭据。我从 AWS 网页界面重新启动了 Web 应用程序并重新启动了我的 PC。没有成功。

提前致谢。

编辑: 我还尝试重新安装 awscli 和 awsebcli:

pip uninstall awsebcli
pip uninstall awscli
pip install awscli
pip install awsebcli --upgrade --user

问题仍然存在,但现在只有一个输出(以前只在 --debug 选项下看到):

$ eb init
ERROR: ResponseParserError - Unable to parse response (no element found: line 1, column 0), invalid XML received:
b''

$

【问题讨论】:

您能否将--debugboto 标志传递给eb <command> 以查看botocore 收到的看似错误的响应是什么样的?此外,请查看您的 ~/.aws/credentials 和 ~/.aws/config 文件,看看您的 SSH 密钥是否已替换 AWS ID/Secret Key。 @progfan 写一个答案,我可以接受。这是我修改并设置为正确值的配置文件。在那之后,它完美地工作了。谢谢! 太棒了,很高兴你发现了问题。 【参考方案1】:

听起来您已将 ~/.aws/credentials 和/或 ~/.aws/config 文件中的 AWS 凭证替换为 SSH 密钥。如果您安装了 AWS CLI,您可以手动替换这些或执行 aws configure

【讨论】:

以上是关于AWS Elastic Beanstalk 命令不返回任何输出的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AWS Elastic Beanstalk 中更改数据库配置

AWS Elastic Beanstalk 容器命令失败

在使用 AWS Elastic Beanstalk 创建实例时运行命令

AWS:使用 Elastic Beanstalk 命令行界面 (EB CLI) 3.x SSH 到 EC2

如何获取命令以从 Elastic Beanstalk 上的 Dockerfile.aws.json 运行?

AWS Elastic Beanstalk - Laravel Artisan 命令