如何在本地 Azure 函数 运行 中获取连接字符串环境变量?

How to get a connection string environment variable in an Azure function running locally?

我正在尝试在我的开发环境中本地 运行 设置 Azure 函数。我希望连接到 MongoDb 数据库实例。

在我的 local.settings.json 文件中添加了:

"ConnectionStrings": {
    "DB_CONNECT_STRING": "mongodb://localhost:27017/MyDatabase"
}

在我的函数中我有:

module.exports = function (context, myTimer) {
    console.log(process.env.DB_CONNECT_STRING);
    context.done();
};

process.env.DB_CONNECT_STRING 未定义。

我假设我需要向环境变量添加某种前缀,但我无法在任何地方找到它的记录。如何指定连接字符串并在函数代码中引用它?

马特·梅森是对的。

在 Node.js 中,我们应该在 Values 集合中指定应用程序设置。然后可以使用 process.env 将这些设置读取为环境变量。

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "DB_CONNECT_STRING": "mongodb://localhost:27017/MyDatabase"
  }
}

然后用process.env.DB_CONNECT_STRING得到值。

对于那里的纯粹主义者,我找到了它。我设置了一个断点并评估了“process.env”,发现我的连接字符串格式如下:

ConnectionStrings:<ConnectionName>

所以如果我的 local.settings.json 看起来像这样:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "FUNCTIONS_WORKER_RUNTIME": "node",
  },
  "Host": {
    "CORS": "http://localhost:8080"
  },
  "ConnectionStrings": {
    "Prod": "MyConnString"
  }
}

然后我会这样访问它:

 const sqlConnString = process.env['ConnectionStrings:Prod'];

因为有冒号,您必须使用括号表示法。