在Node.js中访问Azure ServiceConfiguration设置

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

如果我想在不重新部署代码的情况下更改configuration设置,则需要使用Service Configuration .cscfg文件。

我的问题是,我已经将各种configuration设置存储在web.config<appSettings><iisnode>元素中,我可能想要更改这些元素,这些元素通过进程全局对象显示在我的Node应用程序中。

我已经浏览了MSDN , Node文档和SO (通常),并且找不到Node是否可以或者可以以相同的方式公开服务configuration设置。 如果没有,我可以将它们暴露给我的应用程序吗?

编辑:更具体地说,我真的只是node_env设置从web.config移动到服务configuration,因为我希望能够通过configuration更改从分段切换到生产设置。 原因是 – 我们使用IP交换来在分段和产品之间进行交换,两者之间(例如,它所使用的REST风格的Web服务的URL)有一些细微的差别。

我也知道我可以在由iisnode.yaml读取的iisnode.yaml文件中configurationnode_env ,但是仍然会回收应用程序,而且我不想修改x yaml文件并重新部署,其中x是生产/分期申请。

您可以通过Azure SDK for Node.js访问configuration设置。

安装:

npm install azure

要获取configuration设置:

 var azure = require('azure'); azure.RoleEnvironment.getConfigurationSettings(function(error, settings) { if (!error) { // You can get the value of setting "setting1" via settings['setting1'] } }); 

这些设置似乎保存在位于Azure计算机的c:\ Config \文件夹中的XML文件中。

我敢肯定,你不应该直接访问这些,但是你可以轻松地parsing这个XML,并在节点启动时读取设置。