我正在构建一个 Node.js 应用程序以部署为 Azure 云服务工作者角色。
作为一种好的做法,我喜欢将所有敏感信息(API 密钥等)保留在我的存储库之外。我通常的解决方案是将敏感信息添加为环境变量,并让我的应用程序访问这些信息。
在(相对较新的)Azure 网站中,这可以通过“配置”选项卡的“应用程序设置”部分轻松完成。添加新设置并在 Node.js 中使用process.env.<setting key>
. 这些设置在更新和部署中持续存在。
然而,在 Azure 云服务中,情况似乎并非如此。我已将“配置设置”添加到我的ServiceConfiguration.Cloud.cscfg
:
<ConfigurationSettings>
<Setting name="API_KEY_1" value="" />
<Setting name="API_KEY_2" value="" />
</ConfigurationSettings>
...和我的ServiceDefinition.csdef
:
<ConfigurationSettings>
<Setting name="API_KEY_1" />
<Setting name="API_KEY_2" />
</ConfigurationSettings>
部署时,这些设置可以通过 Web 门户进行编辑,并且我添加了它们的值。
但是,当我重新部署时,设置会被覆盖。我能看到保持其适当值的唯一方法是将值添加到.cscfg
. 但这意味着将这些信息提交到我的回购中。
有我缺少的解决方案吗?