Configuring Azure Functions: Intellisense via JSON Schemas
I build a lot of Angular apps. They all need data, and often I find myself building a Node server to host my API calls and serve my data. There is a lot of ceremony in setting up a web API, which is one reason why I have been interested in serverless functions. Enter Azure Functions, which are incredibly easy to get started to create some of your own APIs.
I'll be posting more about Angular apps and Azure Functions and my experiences with them, including some quickstarts.
Configuring
Azure Functions can be configured a few ways. One of the most flexible is to use JSON files.
When I set up an Azure Function, there are two key configuration files I often use: function.json
and host.json
. The entire Azure Function app service has one host.json
file to configure the app. Every end-point function has its own configuration, defined in a function.json
file. Pretty straightforward overall.
Now, I love JSON. It makes configuring the functions so easy ... except when I have to remember every setting. Ugh. This is where JSON schemas make a huge and positive difference in the development experience.
I use VS Code, which has an easy way to provide intellisense for JSON files. Fortunately, each of the Azure Functions JSON files has a defined schema in the popular GitHub repo https://github.com/SchemaStore/schemastore. This makes it easy to reference the schema from most modern code editors.
Identifying the JSON Schemas to VS Code
Add this json.schemas
property to your settings.json
file in VS Code.
"json.schemas": [
{
"fileMatch": [
"/function.json"
],
"url": "http://json.schemastore.org/function"
},
{
"fileMatch": [
"/host.json"
],
"url": "http://json.schemastore.org/host"
}
],
Once added, go back to a function.json
file and we can see we get some help in the editor! This makes it easy to focus on writing the function code, and less on remembering every JSON property and its domain of values.
I'll follow up with more posts on how to create and configure Azure Functions. In the meantime, check out this post on using the Azure CLI with Azure Functions, by Shayne Boyer