14
votes

In visual studio I have created an Azure Function App with several Function.

When I launch the Function App debugger from the tool bar all Functions are triggered.

Is there a way to trigger a single function from the App within Visual Studio 2017?

2
Are you trying to debug a Function running locally or in Azure? What language are you using for your function, C#? - Thomas

2 Answers

22
votes

There is no easy way to achieve this, but it is possible.

  1. Disable functions:

by modifying the function.json file:

"bindings": [
...
],
"disabled": true

or by using the [Disable] attribute:

[Disable]
[FunctionName("Function")]
[NoAutomaticTrigger]
public static void Function(string input, TraceWriter log)
{ }
  1. func run using Azure Core Tools (only v1.x)

Run function using command: func run <functionName>

  1. Specify functions in the host.json file

In your host.json file specify functions that should be run:

{ 
   "functions":[ "FunctionToRun" ]
} 
4
votes

As @Pawel Maga mentioned there are three ways.

I have a little better approach for 3rd option (Specify functions in the host.json file).

Instead of messing with host.json (we might forget to undo while publishing.. i have done it many times :p).

We can override functions array by setting value in local.settings.json.

For example: Set like below code in local.settings.json

{
  "Values": {
    "AzureFunctionsJobHost__functions__0":  "FunctionToRun",
    "AzureFunctionsJobHost__functions__1":  "SecondFunctionToRun",
  }
}

Instead of writing below code in host.json

{ 
   "functions":[ "FunctionToRun", "SecondFunctionToRun" ]
}