在phoenixweb-framework中配置系统变量

Max*_*Max 2 elixir phoenix-framework

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

我已经用内容创建了一个config/application.yml文件

dev:
  access_key_id: ABCDEFGHIJKLMN
Run Code Online (Sandbox Code Playgroud)

我试过使用figaro_elixir,当我从终端测试它时,它的工作非常完美

我跑的时候

$ MIX_ENV=dev iex -S mix
iex(1)> System.get_env("ACCESS_KEY_ID")
"ABCDEFGHIJKLMN"
iex(2)>
Run Code Online (Sandbox Code Playgroud)

但在我的config/dev.exc中

我一无所获

IO.puts System.get_env("ACCESS_KEY_ID") 
Run Code Online (Sandbox Code Playgroud)

有什么建议?我不想透露我所有的秘密凭据.

Jos*_*lim 5

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

# config/dev.exs
config :my_app, :access_key_id, System.get_env("SUPER_SECRET")
Run Code Online (Sandbox Code Playgroud)

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

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

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