通过 Visual Studio 部署到 Azure 云服务时未设置环境变量
Environment variables not being set when deploying to Azure Cloud Service via Visual Studio
Azure 云服务中的环境变量存在一些问题。
我正在尝试通过 ServiceDefentition.csdef 文件在部署期间设置 "NODE_ENV" 环境变量。
变量将由我的 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>
我尝试了很多变体;在启动任务下而不是在运行时设置 env 变量,使用 xpaths 进行配置设置,但它们似乎并没有为我创建 env 变量。
当弄乱 xpaths 方法时,我确实发现我的配置设置是在实例上创建的,因此正在读取定义文件。
是否有任何我遗漏的常见(或不常见)陷阱或隐藏细节,因为对于一些看似非常简单的事情,我遇到了很多麻烦。
您可以在 web.config 或 iisnode.yml 中进行编辑。查看此答案
Set Node.js Environment Variable (NODE_ENV) in iisnode to Production/Development/Test
正如@AIDAN CASEY所说,在web.config
和iisnode.yml
中设置node_env
变量是正确的。
此外,我们可以利用纯 Node.js 第三部分模块 dotenv。只需要创建一个名为 .env
的文件,内容为:
node_env=production
在 Nodejs 脚本中包含并初始化模块:
require('dotenv').load();
Azure 云服务中的环境变量存在一些问题。 我正在尝试通过 ServiceDefentition.csdef 文件在部署期间设置 "NODE_ENV" 环境变量。
变量将由我的 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>
我尝试了很多变体;在启动任务下而不是在运行时设置 env 变量,使用 xpaths 进行配置设置,但它们似乎并没有为我创建 env 变量。
当弄乱 xpaths 方法时,我确实发现我的配置设置是在实例上创建的,因此正在读取定义文件。
是否有任何我遗漏的常见(或不常见)陷阱或隐藏细节,因为对于一些看似非常简单的事情,我遇到了很多麻烦。
您可以在 web.config 或 iisnode.yml 中进行编辑。查看此答案
Set Node.js Environment Variable (NODE_ENV) in iisnode to Production/Development/Test
正如@AIDAN CASEY所说,在web.config
和iisnode.yml
中设置node_env
变量是正确的。
此外,我们可以利用纯 Node.js 第三部分模块 dotenv。只需要创建一个名为 .env
的文件,内容为:
node_env=production
在 Nodejs 脚本中包含并初始化模块:
require('dotenv').load();