在phoenixweb-framework中配置系统变量

时间:2015-09-02 09:56:09

标签: elixir phoenix-framework

如何使用System.get_env(" ACCESS_KEY_ID")

我创建了一个包含内容

的config / application.yml文件
dev:
  access_key_id: ABCDEFGHIJKLMN

我尝试使用figaro_elixir,当我从终端测试时,它的功能非常完美

当我跑步时

$ MIX_ENV=dev iex -S mix
iex(1)> System.get_env("ACCESS_KEY_ID")
"ABCDEFGHIJKLMN"
iex(2)>

但在我的config / dev.exc

我什么都没有

IO.puts System.get_env("ACCESS_KEY_ID") 

有什么建议吗?我不想公开我所有的秘密凭证。

2 个答案:

答案 0 :(得分:5)

没有必要使用figaro_elixir。只需直接访问配置文件中的环境:

# config/dev.exs
config :my_app, :access_key_id, System.get_env("SUPER_SECRET")

然后在您的应用程序代码中:Application.get_env(:my_app, :access_key_id)。您还可以将上面的配置定义为开发中的字符串,并仅在config/prod.exs中使用环境变量。

另一种方法是明确地将所有机密放在config/prod.secrets.exs文件中,并确保它不在您的版本控制中,而只在您的部署机器中。

编辑:Elixir中不需要基于.yml的配置系统。这是不必要的复杂性。您可以使用Elixir的配置系统完成所有工作。

答案 1 :(得分:0)

我最终得到了它 System.get_env("ACCESS_KEY_ID") 是我的系统的一部分,即我的电脑。我必须自己放在那里。 对于#slack的某人,我指的是

https://github.com/avdi/dotenv_elixir