简体   繁体   中英

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

I am trying to setup an Azure Function to run locally on my development environment. I wish to connect to a MongoDb database instance.

In my local.settings.json file I have added:

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

In my function I then have:

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

process.env.DB_CONNECT_STRING is undefined.

I assume I need to add some kind of prefix to the environment variable, but I can't find this documented anywhere. How do I specify a connection string and reference it in the function code?

Matt Mason is right.

In Node.js, we should specify app settings in the Values collection. These settings can then be read as environment variables by using process.env .

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

在此处输入图像描述

Then use process.env.DB_CONNECT_STRING to get the value.

For the purists out there, I found it. I set a breakpoint and evaluated "process.env" and found my connection string in this format:

ConnectionStrings:<ConnectionName>

在此处输入图像描述

So if my local.settings.json looks like this:

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

Then I would access it like this:

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

You have to use bracket notation because of the colon.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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