我正在进入构建在Windows Azure上通过iisnode运行的Node.js应用程序的测试版部署阶段。建立了多个实例,以及生产/分期分离,我的研究使我得出以下结论:
如果我想在不重新部署代码的情况下动态更改配置设置,我需要使用服务配置
.cscfg
文件。
我的问题是我在<appSettings>
的{{1}}和<iisnode>
元素中存储了我可能想要更改的各种配置设置,这些设置当前通过我的Node应用程序公开进程全局对象。
我查看了MSDN,Node documentation和SO(通常),无法找到Node是否以相同的方式公开服务配置设置。如果没有,有没有办法可以将它们暴露给我的应用程序?
修改:更具体一点,我真的只想将web.config
设置从node_env
移到服务配置,因为我希望能够只需更改配置即可从分段切换到生产设置。原因 - 我们使用IP切换在staging和prod之间进行交换,并且两者之间存在一些非常小的差异(例如,它消耗的RESTful Web服务的URL)。
我也知道我可以在iisnode读取的web.config
文件中配置node_env
,但仍会回收该应用程序,我不想修改 x yaml文件和重新部署,其中 x 是生产/登台应用程序的实例数。
答案 0 :(得分:7)
您可以通过Azure SDK for Node.js访问配置设置。
安装:
npm install azure
要获取配置设置:
var azure = require('azure');
azure.RoleEnvironment.getConfigurationSettings(function(error, settings) {
if (!error) {
// You can get the value of setting "setting1" via settings['setting1']
}
});
答案 1 :(得分:1)
这些设置似乎保存在位于Azure计算机的c:\ Config \文件夹中的XML文件中。
我确定您不是假设直接访问这些,但您可以轻松解析此XML并在节点启动时读取设置。