Ric*_*ook 17 deployment haskell web-deployment yesod keter
我正在使用Yesod构建一个Web应用程序,目前我正在通过环境变量(根据Twelve-Factor App)传递API密钥等秘密,以避免将这些值存储在版本控制的配置文件中.例如,我在开发模式下运行我的应用程序,如下所示:
SOME_API_KEY=value yesod devel
Run Code Online (Sandbox Code Playgroud)
我的config/settings.yml文件中有一个值,该值是根据此环境变量定义的,其值为空值,如下所示:
meetup-api-key: "_env:SOME_API_KEY:"
Run Code Online (Sandbox Code Playgroud)
要使用Keter进行部署,我将使用该yesod keter命令构建Keter包,并将生成的文件放入Keter的incoming目录中.由于我使用环境变量配置,我的应用程序的.keter文件不包含SOME_API_KEY值(这是故意的).
我应该如何SOME_API_KEY进入在Keter内部运行的应用程序实例?
我想避免将价值烘焙到我keter-config.yaml的至少以下三个原因:
我希望在这种情况下有一些"最佳实践".
将您的秘密设置为服务器上的环境变量,并使用 \xe2\x80\x98forward\xe2\x80\x99 将它们设置为您的应用forward-env程序config/keter.yml以下补丁所示: https: //github.com/snoyberg/keter/commit/9e9fca314fb78860fb5c9b08cad212d92b0b20d4