While developing a poorman’s IPAM solution using Azure Functions and a Storage Table I wanted to test a timer triggered Azure Function locally.
This blog post explains how I was able to develop the (PowerShell) timer triggered Azure Function.
There are multiple ways to set up you local development environment. See the Code and test Azure Functions locally documentation for more information.
First I installed the the Azure Functions Core Tools using Chocolatey but you can use whatever method you feel comfortable with.
choco install azure-functions-core-tools-3
Current version of the Azure Function Core Tools on my development machine is 3.0.3160.
Again depending on the setup of your local develop environment there are multiple ways to create a new Azure Function but I used the commandline option using the Azure Function Core tools.
func new --language powershell --template timertrigger --name timertrigger Use the up/down arrow keys to select a worker runtime:powershell Writing profile.ps1 Writing requirements.psd1 Writing .gitignore Writing host.json Writing local.settings.json Writing C:\temp\azfuncblog\.vscode\extensions.json Use the up/down arrow keys to select a language:Use the up/down arrow keys to select a template:timertrigger Function name: [TimerTrigger] Writing C:\temp\azfuncblog\timertrigger\readme.md Writing C:\temp\azfuncblog\timertrigger\run.ps1 Writing C:\temp\azfuncblog\timertrigger\function.json The function "timertrigger" was created successfully from the "timertrigger" template.
If we now try to run the just created Azure Function locally using func start --verbose we get the following error message.
To fix above error we need to install an Azure Storage Emulutor like Azurite. I installed Azurite using NPM.
This installation method requires that you have Node.js version 8.0 or later installed. Node Package Manager (npm) is the package management tool included with every Node.js installation. After installing Node.js, execute the following npm command to install Azurite.
npm install -g azurite
After having installed the Azurite Storage Emulator we can start the Azurite with the following command.
azurite Azurite Blob service is starting at http://127.0.0.1:10000 Azurite Blob service is successfully listening at http://127.0.0.1:10000 Azurite Queue service is starting at http://127.0.0.1:10001 Azurite Queue service is successfully listening at http://127.0.0.1:10001 Azurite Table service is starting at http://127.0.0.1:10002 Azurite Table service is successfully listening at http://127.0.0.1:10002
We should now be able to run the timer triggered Azure Function and check if everything is working as expected.
Hope this helps developing your Azure Functions locally.