2017-08-25 23 views
2

在JavaScript中开发Azure函数locally时,如何在使用azure-functions-core-tools 在本地运行函数时获取/设置节点环境变量?Azure函数JavaScript本地开发环境变量

Documentation for Azure JavaScript中的函数演示通过process.env[settingName]定位函数应用程序设置。这似乎在发布/部署从azure函数应用程序的应用程序设置拉取值时工作得很好。

当试图在命令提示符下使用$env:FOO="bar"(powershell)或set FOO=bar设置的函数内记录本地节点环境变量(Windows)时,它的日志未定义。尝试使用命令context.log(process.env['FOO'])记录这些值。

index.js

const foo = process.env["FOO"]; 

module.exports = function (context, req) { 
    context.log('bar') // successfully logs 'bar' in the azure function log 
    context.log(foo); // logs undefined 

    if (req.query.name || (req.body && req.body.name)) { 
     context.res = { 
      // status: 200, /* Defaults to 200 */ 
      body: "Hello " + (req.query.name || req.body.name) 
     }; 
    } else { 
     context.res = { 
      status: 400, 
      body: "Please pass a name on the query string or in the request body" 
     }; 
    } 
    context.done(); 
}; 

谢谢你的任何帮助,您可以提供!

回答

5

您是否在功能应用程序的根目录中使用了local.settings.json文件?

{ 
    "IsEncrypted": false, 
    "Values": { 
    "FOO": "-- Your Value --", 
    } 
} 
+0

我的本地项目使用'local.settings.json'。我会通过'process.env [“FOO”]'在你的例子中访问“FOO”吗?谢谢! –

+2

我能够使用process.env [settingName]通过添加到'local.settings.json'的'Values'属性来成功访问这些值。你摇滚,谢谢! –

+1

正确,'local.settings.json'文件是一种在部署后本地模拟应用程序设置的方法。 –