大约一个月前,我一直在学习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 可在 ~/.aws/config(或凭证)文件中的 [profile profile-name] 行中找到。