访问Node.js中的Azure ServiceConfiguration设置

时间:2012-08-15 10:57:28

标签: node.js azure iisnode

我正在进入构建在Windows Azure上通过iisnode运行的Node.js应用程序的测试版部署阶段。建立了多个实例,以及生产/分期分离,我的研究使我得出以下结论:

  

如果我想在不重新部署代码的情况下动态更改配置设置,我需要使用服务配置.cscfg文件。

我的问题是我在<appSettings>的{​​{1}}和<iisnode>元素中存储了我可能想要更改的各种配置设置,这些设置当前通过我的Node应用程序公开进程全局对象。

我查看了MSDNNode documentationSO(通常),无法找到Node是否以相同的方式公开服务配置设置。如果没有,有没有办法可以将它们暴露给我的应用程序?

修改:更具体一点,我真的只想将web.config设置从node_env移到服务配置,因为我希望能够只需更改配置即可从分段切换到生产设置。原因 - 我们使用IP切换在staging和prod之间进行交换,并且两者之间存在一些非常小的差异(例如,它消耗的RESTful Web服务的URL)。

我也知道我可以在iisnode读取的web.config文件中配置node_env,但仍会回收该应用程序,我不想修改 x yaml文件和重新部署,其中 x 是生产/登台应用程序的实例数。

2 个答案:

答案 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并在节点启动时读取设置。