Azure云服务和持久性configuration设置

我正在构build一个Node.js应用程序作为Azure云服务工作者angular色进行部署。

作为一个良好的做法,我喜欢将所有敏感信息(API密钥等)从我的回购站点中删除。 我通常的解决scheme是添加敏感信息作为环境variables,并让我的应用程序访问这些。

在(相对较新的)Azure网站中,这可以通过“configuration”选项卡的“应用程序设置”部分轻松完成。 添加新的设置,并用process.env.<setting key>在Node.js中抓取它们。 这些设置在更新和部署中保持不变。

但是,在Azure云服务中,似乎并不是这样。 我已经将“configuration设置”添加到了我的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 。 但是,这意味着将这个信息提交到我的回购。

有没有我失踪的解决scheme?

一般的方法我会用它来把设置放入一个存储帐户,然后有一个cscfg设置为存储帐户的目标。 在启动时,您可以读取存储帐户中的值,并以您需要的任何方式保存在本地。

除此之外,如果您希望继续使用cscfg文件,则可以保留该文件的多个副本,并仅使用正确的版本进行部署。