通过Visual Studio部署到Azure Cloud Service时,未设置环境variables
在Azure云服务中遇到一些环境variables问题。 我想通过ServiceDefentition.csdef文件在部署期间设置一个“NODE_ENV”环境variables。
该variables是由我的node.js应用程序通过process.env.NODE_ENV读入。
这个文档不是非常广泛的(因为这似乎是一个非常简单的事情),但这是我一直以来: link1 link2
我有的ServiceDefinition文件的部分是以下内容:
<?xml version="1.0" encoding="utf-8"?> <ServiceDefinition name="userApiServer" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2015-04.2.6"> <WebRole name="userApiWebRole" vmsize="Large"> ... <Runtime> <Environment> <Variable name="NODE_ENV" value="dev" /> </Environment> </Runtime> ... </WebRole> </ServiceDefinition>
我尝试了很多变化; 设置启动任务下的envvariables,而不是运行时,使用xpaths来configuration设置,但他们似乎并没有为我创buildenvvariables。
当用xpaths方法搞乱时,我发现我的configuration设置是在实例上创build的,所以正在读取定义文件。
是否有任何常见(或不常见)的疑难杂症或隐藏的细节,我错过了,因为对于显然非常简单的东西,我有很多麻烦。
在web.config
和iisnode.yml
设置node_env
variables是正确的, iisnode.yml
AIDAN CASEY说。
另外,我们可以利用纯的Node.js第三方模块dotenv 。 只需要创build一个名为.env
的文件,内容如下:
node_env=production
在Nodejs脚本中包含并初始化模块:
require('dotenv').load();
你可以做它编辑或者做web.config或iisnode.yml。 看看这个答案
将iisnode中的Node.js环境variables(NODE_ENV)设置为Production / Development / Test