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

Cre*_*dev 5 azure visual-studio azure-functions faas

在Visual Studio中,我创建了具有多个功能的Azure功能应用程序。

当我从工具栏启动Function App调试器时,将触发所有功能。

有没有一种方法可以在Visual Studio 2017中从应用程序触发单个功能?

Paw*_*aga 10

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

  1. 禁用功能:

通过修改function.json文件:

"bindings": [
...
],
"disabled": true
Run Code Online (Sandbox Code Playgroud)

或使用[Disable]属性:

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

使用命令运行功能: func run <functionName>

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

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

{ 
   "functions":[ "FunctionToRun" ]
} 
Run Code Online (Sandbox Code Playgroud)


Yas*_*chi 10

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

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

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

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

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

{
  "Values": {
    "AzureFunctionsJobHost__functions__0":  "FunctionToRun",
    "AzureFunctionsJobHost__functions__1":  "SecondFunctionToRun",
  }
}
Run Code Online (Sandbox Code Playgroud)

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

{ 
   "functions":[ "FunctionToRun", "SecondFunctionToRun" ]
} 
Run Code Online (Sandbox Code Playgroud)


Ian*_*Ian 7

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

{
  "Values": {
    "AzureWebJobs.MyFirstFunction.Disabled": true,
    "AzureWebJobs.MySecondFunction.Disabled": true
  }
}
Run Code Online (Sandbox Code Playgroud)

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

请参阅此处: https: //learn.microsoft.com/en-us/azure/azure-functions/disable-function? tabs=portal#localsettingsjson