9

一个月左右,我一直在研究 AWS 服务,现在我必须通过命令行在 AWS elastic beanstalk 上完成一些基本的东西。据我了解,构建实例上安装了aws elasticbeanstalk [command]eb [command] CLI。

当我在应用程序文件夹中运行eb status时,我得到以下形式的响应:

Environment details for: app-name
Application name: app-name
Region: us-east-1
Deployed Version: app-version
Environment ID: env-name
Platform: 64bit Amazon Linux ........
Tier: WebServer-Standard
CNAME: app-name.elasticbeanstalk.com
Updated: 2016-07-14 .......
Status: Ready
Health: Green

这告诉我eb init已为应用程序运行。

另一方面,如果我运行:

aws elasticbeanstalk describe-application-versions --application-name app-name --region us-east-1

我得到错误:

Unable to locate credentials. You can configure credentials by running "aws configure".

在当前用户的主文件夹中有一个 .aws 目录,其中包含一个凭证文件,其中包含一个 [profile] 行以及 aws_access_key_id 和 aws_secret_access_key 行都已设置。

除了凭证的明显问题之外,我真正缺乏的是对这两个 cli 的理解。为什么 EB cli 不要求提供凭证而 AWS cli 要求提供?我什么时候使用其中一个?我可以只使用 aws cli 吗?对此事的任何澄清将不胜感激。

编辑:

对于任何最终来到这里的人,都会遇到与“无法找到凭据”相同的问题。添加--profile profile-name选项为我解决了这个问题。profile-name可以在 [profile profile-name ] 行的 ~/.aws/config(或凭据)文件中找到。

4

2 回答 2

3

为了验证您的系统上是否配置了 AWS CLI,请运行aws configure并为其提供所需的所有详细信息。这应该可以解决您的凭据问题,并且检查配置更改将使您了解当前配置有什么问题。

eb cli 和 aws cli 具有非常相似的功能,我也有点困惑为什么它们都应该存在。根据我的经验,主要区别在于 cli 用于使用简单请求与您的 AWS 账户进行交互,而 eb cli 在您和 eb 环境之间创建连接,因此可以更好地控制它们。

例如 - 我刚刚为我们的 beanstalk 应用程序开发了一个 CI/CD 管道。当我使用 eb cli 时,我可以监控我们的应用程序的部署,并在部署完成时通知开发人员。aws cli 不提供该功能,实现该功能的唯一方法是重复查询服务,直到您收到所需的结果。

于 2016-07-15T09:46:39.533 回答
3

AWS CLI 是适用于所有 AWS 资源的通用工具。它与特定的软件项目、您所在的机器类型、您所在的目录或任何类似的东西无关。它只需要凭证,无论是在您自己的机器上手动放置,还是在 EC2 实例上由 AWS 生成。

EB CLI 是一个高级工具,可将您的软件项目安排到位。它与您所在的目录相关联,它假定您目录中的内容是您的项目,并且它具有简短的命令,可以执行大量后台工作以神奇地将所有内容放在正确的位置。

于 2017-12-13T15:47:04.987 回答