1

我即将进入构建通过 Windows Azure 上的 iisnode 运行的 Node.js 应用程序的 beta 部署阶段。在设置了多个实例以及生产/暂存分离之后,我的研究使我得出以下结论:

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

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

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

编辑:更具体地说,我真的只是希望将node_env设置从web.config服务配置移动,因为我希望能够通过配置更改从暂存切换到生产设置。原因 - 我们使用 IP 切换在 staging 和 prod 之间进行交换,并且两者之间存在一些非常小的差异(例如,它使用的 RESTful Web 服务的 URL)。

我也知道我可以node_enviisnode.yamliisnode 读取的文件中进行配置,但这仍然会回收应用程序,并且我不想修改x yaml 文件并重新部署,其中x是生产/登台应用程序的实例数。

4

2 回答 2

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']
  }
});
于 2012-09-11T02:26:56.467 回答
1

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

我确定您不应该直接访问这些,但您可以轻松解析此 XML 并在节点启动时读取设置。

于 2012-08-15T11:27:39.493 回答