繁体   English   中英

通过Visual Studio部署到Azure云服务时未设置环境变量

[英]Environment variables not being set when deploying to Azure Cloud Service via Visual Studio

Azure Cloud Services中的环境变量存在一些问题。 我正在尝试通过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>

我尝试了许多变体; 使用xpaths配置设置在启动任务下而不是在运行时下设置env变量,但是它们似乎并没有为我创建env变量。

当使用xpaths方法时,我确实发现我的配置设置是在实例上创建的,因此正在读取定义文件。

我是否缺少任何常见(或不常见)的陷阱或隐藏细节,因为对于某些非常简单的事情,我遇到了很多麻烦。

您可以在web.config或iisnode.yml中对其进行编辑。 看看这个答案

将iisnode中的Node.js环境变量(NODE_ENV)设置为生产/开发/测试

如@AIDAN CASEY所说,在web.configiisnode.yml设置node_env变量是正确的。

此外,我们可以利用纯Node.js第三部分模块dotenv 只需创建一个名为.env的文件,其内容为:

node_env=production

在Nodejs脚本中包含并初始化模块:

require('dotenv').load();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM