Missing value for AzureWebJobsStorage in local.settings.json local development in Visual Studio 2017

AzureVisual Studio-2017Azure Functions

Azure Problem Overview


I'm developing a azure function locally, with the Storage Emulator and de Storage Explorer opened.

File tree

File tree

local.settings.json

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "AzureWebJobsDashboard": "UseDevelopmentStorage=true"
  },
  "ConnectionStrings": {
    "PlantaoEntities": {
      "ConnectionString": "CENSORED",
      "ProviderName": "System.Data.EntityClient"
    }
  }
}

But a receives the following message when trying to run the code:

> Missing value for AzureWebJobsStorage in local.settings.json. This is required for all triggers other than HTTP. You can run 'func azure functionapp fetch-app-settings ' or specify a connection string in local.settings.json

It's was working before a rebuild solution, and if I try func azure functionapp fetch-app-settings <functionAppName> it try to retrieve the information from the azure portal itself.

Azure Solutions


Solution 1 - Azure

I was getting the same error when I was running my Azure Function in my Visual Studio 2019.

enter image description here

I had already set the Copy To Output Directory action to Copy always and I was still getting the same error. The issue is that the Azure Function local.settings.json file doesn't support nested json. You can track this issue here.

I was having values in local.settings.json as preceding.

{
  "IsEncrypted": false,
  "Values": {
    "Custom": {
      "Tickets": {
        "Channels": [
          "One",
          "Two"
        ]
      }
    },
    "AzureWebJobsStorage": "",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "ServiceBusConnectionString": ""
  }
}

As you can see that there is an extra nested json (Custom) object inside Values, that is the reason why I was getting this error. To fix this, I had to add a new configuration file called configuration.json and add my custom values there.

"Custom": {
      "Tickets": {
        "Channels": [
          "One",
          "Two"
        ]
      }
    }

The fix is to use either the ConfigurationBuilder or read that file using File.ReadAllText. You can also add the entire JSON as a plain string in the local.settings.json instead of a JSON object.

Hope it helps.

Solution 2 - Azure

> The solution was to right-click on local.settings.json, go to > properties, change "Copy to Output directory" from "Do not copy" to > "Copy always". Now the CLI picks up the settings when running from > within Visual Studio 2017.

https://github.com/Azure/azure-functions-core-tools/issues/223#issuecomment-326225219

Solution 3 - Azure

FYI, you also get this error when the value for "AzureWebJobsStorage" is effectively empty (""). You can set it to e.g. "UseDevelopmentStorage=true" for development.

Be aware, this requires the storage emulator installed locally. See the docs.

Solution 4 - Azure

Just saw this error on VS2019 and resolved it by reordering the local.settings.json so that the IsEncrypted value was after the "Values"

{
   "Values": {
        "AzureWebJobsStorage": "removed",
      },
   "IsEncrypted": false
}

Solution 5 - Azure

Same error appears when your local.settings.json file has a json error, e.g. to following commas ,,.

Solution 6 - Azure

For anyone that may have encountered this and scratched their heads because they didn't have nested JSON and had their <ItemGroup> values correct, this may help you. Since local.settings.json is ignored, I had copied one over using the file system, and though Visual Studio for Mac was showing it in the solution explorer it was apparently not picking it up no matter what I changed <CopyToOutputDirectory> to. After closing and reopening my solution the issue went away.

Solution 7 - Azure

In case any of the above solutions aren't working for people who require nested JSON in their local.settings.json, just flatten the nested objects as so:

This:

"Config": {
 "MyCusomValue": "Value"
}  

Becomes:

"Config:MyCustomValue": "Value"

Solution 8 - Azure

Solution - Azure Functions Node.js/Typescript (VSCODE)

This solution is for local development. Be aware, this requires the storage emulator installed locally. See the docs.

1.) From your project root, open local.settings.json and update the AzureWebJobsStorage value from "" to UseDevelopmentStorage=true.

example: "AzureWebJobsStorage": "UseDevelopmentStorage=true",

2.) Restart Function App

Example local.setting.json

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true"
    "FUNCTIONS_WORKER_RUNTIME": "node",
    "AZURE_STORAGE_CONNECTION": "Optional_your_remote_storage_string_in_azure"
    "AZURE_STORAGE_CONTAINER_NAME": "optional_remote_container_name"
  },
  "Host": {
    "LocalHttpPort": 7071,
    "CORS": "*",
    "CORSCredentials": false
  }
}

Solution 9 - Azure

I know the question is related to Visual Studio, but I could fix the error by doing the following in Visual Studio Code:

  1. Install the "Azurite" extension
  2. Press F1 and type Azurite: Start
  3. Debug your Azure Function as usual (by pressing F5)

For more details see the official documentation for Azurite

Solution 10 - Azure

Update the local setting as below

{
  "Values": 
  {
  "AzureWebJobsStorage": "DefaultEndpointsProtocol=`connection string of a blob storage`",
  "FUNCTIONS_WORKER_RUNTIME": "python"
  },
  "IsEncrypted": false
}

Excample connection

string=https;AccountName=xxx;AccountKey=xxxxxxx==;EndpointSuffix=core.windows.net

Solution 11 - Azure

For me I found this file to be very finicky so I set it back to the way it was created by VS2019 and added my own configuration as has been suggested above.

Solution 12 - Azure

For me, I was missing a closing quote on one of my values. As soon as I fixed that, everything worked.

Solution 13 - Azure

I just encounter same issue with Intellij Idea (didn't wanted to move on VSCode). I just had to download Azure Core tools depending on my system (Windows, forced by the client -_-) on :

https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local?tabs=windows%2Ccsharp%2Cbash

Then edit the launch config, adding in App settings key :

AzureWebJobsStorage

And in App settings value :

UseDevelopmentStorage=true

Have fun.

Solution 14 - Azure

I fixed this issue finally, it is because of your config files like local.settings.json or appsettings.json show any warning messages then it will fail to load the settings.

Solution 15 - Azure

Another gotcha:

If the spelling of the file local.settings.json is wrong, Visual Studio wont find it, but report that the values are not provided.

Solution 16 - Azure

This could also happen if you declare an string array on the settings since it is not supported. I had something like this:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true"
    "FUNCTIONS_WORKER_RUNTIME": "node",
    "AZURE_STORAGE_CONNECTION": "Optional_your_remote_storage_string_in_azure"
    "AZURE_STORAGE_CONTAINER_NAME": "optional_remote_container_name",
	"AllowedTypesToProcess": 
	[
		"MyType1",
		"MyType2",
		"MyType3"
	]
  },
  "Host": {
    "LocalHttpPort": 7071
  }
}

Since arrays are not supported, it failed to load the settings, but the error says "Missing value for AzureWebJobsStorage in local.settings.json"

If you need to have an array of the settings, take a look to this: https://www.titanwolf.org/Network/q/9256d500-5dbc-4375-851d-4d6f13928945/y

Solution 17 - Azure

The solution for my case was I selected the wrong Azure function project. Make sure you select the proper startup project.

Solution 18 - Azure

I got mine to work by making sure the connection value ended with _STORAGE.

function.json

{
  "scriptFile": "__init__.py",
  "bindings": [
    {
      "name": "blob",
      "type": "blobTrigger",
      "direction": "in",
      "path": "container/{name}",
      "connection": "mystorage_STORAGE"
    }
  ]
}

local.settings.json

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "python",
    "FUNCTIONS_EXTENSION_VERSION": "~4",
    "WEBSITE_CONTENTAZUREFILECONNECTIONSTRING": "DefaultEndpointsProtocol=https;AccountName=xxx;AccountKey=yyy==;",
    "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=xxx;AccountKey=yyy==;",
    "mystorage_STORAGE": "DefaultEndpointsProtocol=https;AccountName=xxx;AccountKey=yyy==;"
  },
  "ConnectionStrings": {}
}

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionrubens.lopesView Question on Stackoverflow
Solution 1 - AzureSibeesh VenuView Answer on Stackoverflow
Solution 2 - Azurerubens.lopesView Answer on Stackoverflow
Solution 3 - AzureBenjaminView Answer on Stackoverflow
Solution 4 - AzureChrisRView Answer on Stackoverflow
Solution 5 - AzurekagetokiView Answer on Stackoverflow
Solution 6 - AzureRobb VandaveerView Answer on Stackoverflow
Solution 7 - AzureBret FallerView Answer on Stackoverflow
Solution 8 - AzureBrandonView Answer on Stackoverflow
Solution 9 - AzureRené KView Answer on Stackoverflow
Solution 10 - AzureAbhiraj CSView Answer on Stackoverflow
Solution 11 - AzureLarry AultmanView Answer on Stackoverflow
Solution 12 - AzurePeter MorrisView Answer on Stackoverflow
Solution 13 - AzureGweltaz NiquelView Answer on Stackoverflow
Solution 14 - AzureMuni ChittemView Answer on Stackoverflow
Solution 15 - AzureFin McCarthyView Answer on Stackoverflow
Solution 16 - AzureA. RamirezView Answer on Stackoverflow
Solution 17 - Azurewenn32View Answer on Stackoverflow
Solution 18 - AzurereubanoView Answer on Stackoverflow