gpt4 book ai didi

haskell - 在 Yesod 和 Keter 中传递应用程序 secret

转载 作者:行者123 更新时间:2023-12-03 14:24:58 24 4
gpt4 key购买 nike

我正在使用 Yesod 构建一个 Web 应用程序,并且目前正在通过环境变量(根据 The Twelve-Factor App)传递诸如 API key 之类的 secret ,以避免将这些值存储在版本控制的配置文件中。例如,我在开发模式下运行我的应用程序,如下所示:

SOME_API_KEY=value yesod devel

我的 config/settings.yml 中有一个值根据此环境变量定义的文件,其值为空,如下所示:
meetup-api-key: "_env:SOME_API_KEY:"

为了使用 Keter 进行部署,我正在使用 yesod keter 构建 Keter 包。命令并将生成的文件放入 Keter 的 incoming目录。由于我使用环境变量配置,我的应用程序的 .keter文件不包含 SOME_API_KEY值(value)(这是故意的)。

我应该如何通过 SOME_API_KEY进入我在 Keter 内运行的应用程序的实例?

我想避免将值烘焙到我的 keter-config.yaml至少有以下三个原因:
  • 它不如环境变量方法安全。
  • 与应用程序的配置相反,直接嵌入到 Keter 本身的配置文件中,如果不停止并重新启动整个 Keter 进程,就无法更改 key 。
  • 环境变量被传递到由 Keter 管理的每个应用程序中。

  • 我希望在这种情况下有一些“最佳实践”。

    最佳答案

    将您的 secret 设置为服务器上的环境变量,并使用 forward-env 将它们“转发”到您的应用程序在 config/keter.yml如以下补丁所示:https://github.com/snoyberg/keter/commit/9e9fca314fb78860fb5c9b08cad212d92b0b20d4

    关于haskell - 在 Yesod 和 Keter 中传递应用程序 secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33129097/

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