gpt4 book ai didi

Elixir Phoenix 在运行时不加载 env 变量

转载 作者:行者123 更新时间:2023-12-05 03:00:28 25 4
gpt4 key购买 nike

在启动 phoenix 服务器时,我试图从我的 mac 加载一个 API key 作为系统环境。我错了什么?这些是我的步骤:

  1. 在我的 mac 终端上:

    export API_NOTIFICATION_KEY=1234
  2. 在我的 config.exs 中

    config :app, App.Notifications,
    notification_api_key: {:system, "API_NOTIFICATION_KEY"}
  3. 在我使用它的模块中

    @api_notification_key Application.get_env(:app, App.Notifications)[:notification_api_key]
  4. 启动我的 Phoenix 服务器

    mix phx.server

然后当我尝试进行 API 调用时,它显示为 nil。我是否缺少正确加载它的步骤?

最佳答案

属性在编译期间进行评估,因此:

@api_notification_key Application.get_env(:app, App.Notifications)[:notification_api_key]

将在编译时设置其值。我认为这不是你想要的,所以你最好使用一个函数:

defp api_notification_key() do
case Application.get_env(:test, App.Notifications)[:notification_api_key] do
{:system, var_name} -> System.get_env(var_name)
value -> value
end
end

关于Elixir Phoenix 在运行时不加载 env 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56782786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com