如果我想在开发环境中启动所有可用的功能,我只需执行以下操作:
func host start
有没有办法选择可用功能的子集,而不必将打算停用的功能移出工作目录等?
PS 我使用 Python 作为函数本身。
最佳答案
有三种实现方式。
一是修改function.json:
"bindings": [
...
],
"disabled": "IS_DISABLED"
另一个是使用
Disable
属性以防止函数被触发。 [Disable]
[FunctionName("Function")]
[NoAutomaticTrigger]
public static void Function(string input, TraceWriter log)
{
}
func run <functionName>
{
"functions": [ "QueueProcessor", "GitHubWebHook" ]
}
更新:
4:正如 jtlz2 回答的那样,这种方式用于在本地使用
local.settings.json
禁用功能.{
"Values": {
"AzureWebJobs.MyFunctionName.Disabled": true
"AzureWebJobs.MyFunctionName2.Disabled": false
}
}
**更新:**因为@ahmelsayed 解释了有很多选项可以只调用一个函数,所以我在这里更新它。
“禁用”旨在用于动态打开或关闭功能。运行时仍将加载该函数,并将显示该函数的任何错误或问题(不正确的设置等),但不会执行代码。有很多方法可以启用/禁用某个功能,因为有些人希望将其保留在源代码管理中,而有些人则是 DevOps 操作
functions
host.json 中的数组是我最初不知道的。它被添加到运行时是为了方便运行时开发人员拥有一个大文件夹 samples他们希望能够只加载其中的一个子集。这完全忽略了未列出的函数。无论如何,它们不会被索引或加载。
关于azure-functions - Azure 函数 : How do I launch only a specific Function in local dev environment?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56217001/