19

在 Visual Studio 中,我创建了一个包含多个 Function 的 Azure Function App。

当我从工具栏启动函数应用程序调试器时,所有函数都会被触发。

有没有办法从 Visual Studio 2017 中的应用程序触发单个功能?

4

3 回答 3

26

没有简单的方法来实现这一点,但这是可能的。

  1. 禁用功能:

通过修改 function.json 文件:

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

或使用 [Disable] 属性:

[Disable]
[FunctionName("Function")]
[NoAutomaticTrigger]
public static void Function(string input, TraceWriter log)
{ }
  1. func 使用 Azure 核心工具运行(仅 v1.x)

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

  1. 在 host.json 文件中指定函数

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

{ 
   "functions":[ "FunctionToRun" ]
} 
于 2018-10-16T22:06:14.637 回答
7

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

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

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

我们可以通过在 local.settings.json 中设置值来覆盖函数数组。

例如:在 local.settings.json 中设置如下代码

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

而不是在 host.json 中编写以下代码

{ 
   "functions":[ "FunctionToRun", "SecondFunctionToRun" ]
} 
于 2020-12-05T10:45:53.640 回答
5

作为上述答案的更新:您似乎可以通过这种方式禁用 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

于 2021-09-16T18:20:13.417 回答