Configure and deploy Azure Functions with Kudu
Thomas Ardal, March 29, 2017
Time for another post in our series about Azure Functions. This is the third post in the series about Azure Functions:
- Part 1: An introduction to Azure Functions and why we migrate
- Part 2: Migrating a Topshelf consumer to a Function running on Azure
- Part 3: Configure and deploy Azure Functions with Kudu
- Part 4: Monitoring Azure Functions with the Portal and elmah.io
- Extras: Microsoft Azure Functions problems and troubleshooting
Now that we have a working Function, we are ready to deploy it to Azure. The easiest way to do this, is by using the deployment engine built into Kudu. Before we do that, we need to create a new Function App on Azure, by going to the Portal and selecting New | Function App:
Besides the usual pieces of info like name and resource group, you need to think about what to select in Hosting Plan. Azure Functions provide two options: Consumption Plan and App Service Plan. Consumption Plan means "Serverless", since you delegate the responsibility of finding a server to execute your Function to Azure. The server will be located in the location you select, but that's about all you know. If selecting App Service Plan, you can utilize a new or already created app service plan, running some of your existing Functions and/or websites. Consumption Plan should be the default choice, unless you need to access some resources on your existing App Service Plan.
Once created, you'll see something like this:
The Portal lets you create Functions directly from the UI, but that's not what we are trying to achieve here. Click the Function app settings link and click the Configure continuous integration button. In the popup, you can set up deployment from GitHub, Bitbucket, local git repository or whatever source you prefer. The feature works exactly like when used from a Web App. When set up, changes are automatically deployed to the Function.
When the first deployment has successfully executed, hit the Refresh link and the new Function shows up. When setting up deployments through Kudu, you cannot edit the Function directly on the Portal, since that would make it out of sync with the version under source control.
In the next post, I will set up logging and monitoring using elmah.io and the tools provided by Azure.
This post was brought to you by the elmah.io team. elmah.io is the best error management system for .NET web applications. We monitor your website, alert you when errors start happening and help you fix errors fast.