Code and test Azure Functions locally

While you're able to develop and test Azure Functions in the Azure portal, many developers prefer a local development experience. Functions makes it easy to use your favorite code editor and development tools to create and test functions on your local computer. Your local functions can connect to live Azure services, and you can debug them on your local computer using the full Functions runtime.

Local development environments

The way in which you develop functions on your local computer depends on your language and tooling preferences. The environments in the following table support local development:

Environment Languages Description
Command prompt or terminal C# (class library), C# script (.csx), JavaScript Azure Functions Core Tools provides the core runtime and templates for creating functions, which enable local development. Version 2.x supports development on Linux, MacOS, and Windows. All environments rely on Core Tools for the local Functions runtime.
Visual Studio Code C# (class library), C# script (.csx), JavaScript The Azure Functions extension for VS Code adds Functions support to VS Code. Requires the Core Tools. Supports development on Linux, MacOS, and Windows, when using version 2.x of the Core Tools. To learn more, see Create your first function using Visual Studio Code.
Visual Studio 2019 C# (class library) The Azure Functions tools are included in the Azure development workload of Visual Studio 2019 and later versions. Lets you compile functions in a class library and publish the .dll to Azure. Includes the Core Tools for local testing. To learn more, see Develop Azure Functions using Visual Studio.
Maven (various) Java Integrates with Core Tools to enable development of Java functions. Version 2.x supports development on Linux, MacOS, and Windows. To learn more, see Create your first function with Java and Maven. Also supports development using Eclipse and IntelliJ IDEA

Important

Do not mix local development with portal development in the same function app. When you create and publish functions from a local project, you should not try to maintain or modify project code in the portal.

Each of these local development environments lets you create function app projects and use predefined Functions templates to create new functions. Each uses the Core Tools so that you can test and debug your functions against the real Functions runtime on your own machine just as you would any other app. You can also publish you function app project from any of these environments to Azure.

Next steps