As this is a preview release, there are still a number of feature gaps. For more information, see Azure Functions runtime 2.0 known issues.
Running on your local machine
To get the new version of the core tools, pull down the @core tag on npm:
npm i -g azure-functions-core-tools@core
If you’re using Ubuntu, prefix the command above with “sudo.”
If you have problems with the npm install on Mac, use the following:
sudo npm i -g azure-functions-core-tools@core --unsafe-perm
To learn how to use the tools, see Code and test Azure functions locally.
For the easiest installation, you must be running Node version 8.5 or higher. See instructions below for how to target a lower version.
Run the host. This automatically enables debugging with the Node port 5858:
func host start
Open the folder in Visual Studio Code:
In VSCode, set a breakpoint at the first line of the function, and attach the debugger (via F5 or the debug toolbar). Then, in a browser, navigate to the URL
You’ll then see the breakpoint being hit in VSCode!
After installing azure-functions-core-tools, run the following commands:
npm i -g node-pre-gyp cd %userprofile%/.azurefunctions/bin/workers/node/grpc node-pre-gyp install
C# .NET Standard 2.0 class library
You can now run and debug C# functions on a Mac or Linux. However, the package Microsoft.NET.Sdk.Functions does not yet support .NET Standard 2.0 class libraries. This is the package that identifies a project as Functions project to Visual Studio and generates function.json from attributes during build.
You can still author C# class libraries that target .NET Standard 2.0, but you must use a manually-authored function.json. The templates for C# class libraries aren’t yet available in the Core Tools, but you can get a sample from GitHub.
Dotnet command line
git clone https://github.com/lindydonna/CSharpHttpCore.git cd CSharpHttpCore dotnet build dotnet publish cd HttpTriggerCore/bin/Debug/netstandard2.0 func host start
VS Code debugging
To debug your C# functions, open the folder containing your .csproj in VS Code. Make sure you have installed the C# extension.
- In the debug toolbar next to the play button, select Add Configuration
- Select .NET Core as the environment, then .NET: Attach to local .NET Core Console App.
This will generate a launch.json configuration for your project. Then, press F5 and select .NET Core Attach. Select the dotnet process with the command line Azure.Functions.Cli.dll host start.
Browse to the URL
http://localhost:7071/api/HttpTriggerCSharp?name=CSharpEverywhere!. You’ll then see your breakpoint hit in VSCode.
First, ensure you have downloaded the @core version of azure-functions-core-tools:
npm i -g azure-functions-core-tools@core
Then, add a new launch configuration for the 2.0 version of the Core Tools:
- In project properties -> Debug, change Launch to Executable
- For Executable, use %APPDATA%\npm\func.cmd
- For Application Arguments, use host start
- For working directory, use $(TargetDir)
F5 will now launch the new version of the Azure Functions Core Tools.
Running Functions 2.0 in Azure
You can also use the .NET Core 2.0 port in Azure by targeting the new Functions 2.0 preview runtime. To use it, select “beta” in Function app settings -> Runtime version. Alternatively, you can the app setting
FUNCTIONS_EXTENSION_VERSION to the value
beta. You will then see a different set of templates available in the Add New Function page.
Since the 2.0 runtime is in preview, there may be breaking changes even in minor releases. So, the 2.0 runtime should not be used for production workloads.
If you navigate to the root of you function app, you’ll see that you’re running the new version:
Connect with us
We’ve seen a lot of excitement and interest, so we’re looking forward to getting your feedback as we finalize the Functions 2.0 runtime.
- To report bugs or file feature requests, please open an issue on the Azure-Functions GitHub repo.
- For technical questions, please post on the MSDN forums or StackOverflow. The entire Functions engineering team monitors these questions, so you’re sure to get an expert answer.
- For product news, follow @AzureFunctions.