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

Viewed 2611

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?

2 Answers

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>

enter image description here

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.

Related