如何为不同的项目使用不同的env?

时间:2016-10-14 09:53:44

标签: python unix

我在服务器上运行了两个项目。我将AWS_SECRET存储在env。

我在〜/ .bash_profile中设置了这些env。如何确保一个项目获得正确的密钥?我可以只在项目范围内设置env吗?

感谢。

3 个答案:

答案 0 :(得分:1)

具体来说,对于AWS CLI(aws),您可以使用" profiles",您可以使用--profile参数进行选择。例如,在~/.aws/credentials

[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

[user2]
aws_access_key_id=AKIAI44QH8DHBEXAMPLE
aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY

然后使用aws --profile user2选择非默认配置文件作为一次性,或者在shell中设置环境变量AWS_DEFAULT_PROFILE=user2以使其永久化。这可能比直接设置AWS_SECRET更容易,因为配置文件名称实际上是您可以记住的东西:)

除凭据外,个人资料还允许您切换其他设置,例如region

答案 1 :(得分:0)

您可以做的事情是在运行时设置环境变量。

示例:

$ AWS_SECRET="Secret1" run_server1 arg1 arg2 arg3
$ AWS_SECRET="Secret2" run_server2 arg1 arg2 arg3

答案 2 :(得分:0)

Autoenv是为此目的而构建的:

pip install autoenv
echo 'AWS_SECRET="Secret1"' > ./project1/.env
echo 'AWS_SECRET="Secret2"' > ./project2/.env