Amazon OpsWorks NodeJS环境变量

时间:2014-07-07 20:16:54

标签: node.js amazon-web-services chef chef-recipe aws-opsworks

我使用Amazon OpsWorks为NodeJS应用服务器配置了一个堆栈。

我需要访问一些定义Google API凭据的环境变量。我怎样才能做到这一点?我已经花了两天多的时间。

我最后得到了以下厨师食谱:

magic_shell_environment "GOOGLE_CLIENT_ID" do
    owner 'root'
    group 'root'
    value "********"
    mode  '0600'
end

我使用root帐户,因为似乎NodeJS在该帐户下运行。如果我删除ownergroup属性,我可以很好地读取这些环境变量(作为默认的ubuntu用户)。但是,当我ssh到我的实例并以root身份输入echo $GOOGLE_CLIENT_ID时,我得到一个空字符串。

此外,记录了console.xxxx(...)的输出?

3 个答案:

答案 0 :(得分:1)

OpsWorks现在允许您在应用设置页面中指定最多20个自定义环境变量。对于node.js应用程序,这些将在process.env对象中可用。 enter image description here

答案 1 :(得分:0)

使用OpsWorksEnvy食谱。它可以很好地挂接到默认的nodejs cookbook中,并允许您在堆栈属性中设置环境变量。

答案 2 :(得分:0)

这应该很容易做到。只需将以下行添加到食谱顶部即可。

ENV['GOOGLE_CLIENT_ID']="YOUR_CLIENT_ID"