Azure Function App = 运行 单个 Azure Function 在本地进行调试

Azure Function App = run single Azure Function locally to debug

在 visual studio 中,我创建了一个包含多个函数的 Azure Function App。

当我从工具栏启动 Function App 调试器时,所有 Functions 都会被触发。

有没有办法在Visual Studio 2017 年内从应用程序触发单个功能?

没有简单的方法可以做到这一点,但有可能。

  1. Disable functions:

通过修改 function.json 文件:

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

或使用[禁用]属性:

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

运行 函数使用命令:func run <functionName>

  1. Specify functions in the host.json file

在您的 host.json 文件中指定函数应该是 运行:

{ 
   "functions":[ "FunctionToRun" ]
} 

正如@Pawel Maga 提到的那样,共有三种方法。

我对第三个选项有更好的方法(在 host.json 文件中指定函数)。

而不是搞乱 host.json(我们可能会在发布时忘记撤消。我已经做过很多次了 :p)。

我们可以通过在 local.settings.json 中设置值来 override functions 数组。

例如: 在 local.settings.json

中设置如下代码
{
  "Values": {
    "AzureFunctionsJobHost__functions__0":  "FunctionToRun",
    "AzureFunctionsJobHost__functions__1":  "SecondFunctionToRun",
  }
}

而不是在 host.json

中编写下面的代码
{ 
   "functions":[ "FunctionToRun", "SecondFunctionToRun" ]
} 

作为对上述答案的更新:您似乎可以通过这种方式禁用 localsettings.json 中的功能。

{
  "Values": {
    "AzureWebJobs.MyFirstFunction.Disabled": true,
    "AzureWebJobs.MySecondFunction.Disabled": true
  }
}

这就是我计划为我们的团队做的事情,因为它具有“安全”选项的最佳语法(不必在发布时撤消的方法)。

看这里:https://docs.microsoft.com/en-us/azure/azure-functions/disable-function?tabs=portal#localsettingsjson