我正在使用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的至少以下三个原因:
我希望在这种情况下有一些"最佳实践".