2015-05-27 48 views
1

我正在为两家不同的公司开发两个不同的项目。他们每个人都可以访问他们的AWS管理控制台来部署Ruby应用程序。我在Mac OS/X上编写代码。使用EB部署管理多个AWS账户

我看不到在哪里更改eb命令的配置以指向不同的帐户。我做了eb init,但它似乎指向相同的AWS账户并在该账户上创建应用程序和服务器实例。当两个不同的AWS账户用于两个不同的项目并尝试使用eb命令进行部署时,有人可以请帮助或指导我进行操作吗?

+0

你能告诉当你运行'EB init'会发生什么? – ydaetskcoR

+0

当我第一次运行eb init时,它会询问应用程序名称,区域等。当我运行它时,它不会要求它。我假设它存储在配置文件中,所以它只是看起来在那里。但是,它并没有要求我的帐户信息,以什么IAM用户使用。它违反了我的其他项目,因此最终创建并将应用程序部署到了错误的AWS账户。 – user2974739

+0

你可以试试运行'printenv |来自终端的grep“AWS_CREDENTIAL_FILE”? – ydaetskcoR

回答

2

的配置数据应该在部署之前存储在~/.aws/config

你可以保持两个不同的配置文件和简单交换他们。如果你整天整天都在工作,那么这很容易,但是如果你整天在两者之间切换,可能会引起混淆。

您可以编写一个简单的脚本来在运行eb init之前交换它们。

既然你列出了Ruby作为你的语言,我发现这正是你需要的完美写作。 http://jtimberman.housepub.org/blog/2013/10/19/managing-multiple-aws-account-credentials/

+0

谢谢。这是我正在寻找的。 – user2974739

1

正确的方法是使用“命名的配置文件”。比方说,您有一个工作/默认AWS账户以及一个个人AWS账户。

编辑~/.aws/credentials看起来像这样:

[default] 
aws_access_key_id = abcd1234KEY1 
aws_secret_access_key = abcd1234SECRET1 

[personal] 
aws_access_key_id = efghij6789KEY2 
aws_secret_access_key = efghij6789SECRET2  

然后使用eb init --profile personal使用您的个人帐户。

AWS文档浏览: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-configuration.html

+0

我看了一下我的配置,并且我有一个'.aws/config'和'.aws/credentials'。 Credentials包含'[default]'部分,而'config'包含'[profile eb-cli]'部分。后者是EB CLI所需的硬编码配置文件吗(或者我在某个时候创建​​了这个配置文件,并忘记了提供这个名称)?无论如何,这个页面http://docs.aws.amazon.com/cli/latest/userguide/cli-multiple-profiles.html与其他非EB的AWS CLI也是相关的。 – JHH

相关问题