如果我想在开发环境中启动所有可用功能,只需执行以下操作:
func host start
是否有一种方法可以选择可用功能的子集,而不必将要停用的功能移出工作目录等?
PS我正在使用Python作为函数本身。
答案 0 :(得分:2)
有三种实现方法。
一个正在修改function.json:
"bindings": [
...
],
"disabled": "IS_DISABLED"
另一种方法是使用Disable
属性来防止函数被触发。
[Disable]
[FunctionName("Function")]
[NoAutomaticTrigger]
public static void Function(string input, TraceWriter log)
{
}
使用Azure Functions Core Tools,仅适用于版本1.x
func run <functionName>
{
"functions": [ "QueueProcessor", "GitHubWebHook" ]
}
更新:
4:正如jtlz2回答的那样,这种方式是使用local.settings.json
在本地禁用功能。
{
"Values": {
"AzureWebJobs.MyFunctionName.Disabled": true
"AzureWebJobs.MyFunctionName2.Disabled": false
}
}
**更新:**正如@ahmelsayed解释的那样,有很多选项只能调用一个函数,所以我在这里进行了更新。
“已禁用”旨在用于动态打开或关闭功能。运行时仍将加载该函数,并且将显示该函数的任何错误或问题(错误的设置等),但不会执行该代码。启用/禁用功能的方法有很多,因为有些人希望将其保留在源代码管理中,而有些人则是devops操作
host.json中的functions
数组是我最初并不了解的东西。为了方便运行时开发人员,他们将samples的大文件夹仅希望加载其中的一个子集而添加到了运行时。这完全忽略了未列出的功能。无论如何,它们都不会被索引或加载。
答案 1 :(得分:1)
最近似乎对禁用功能有些担忧。
正如https://github.com/Azure/Azure-Functions/issues/736#issuecomment-471072316所指出的,人们可以利用local.settings.json
来实现这一目标。只需添加:
{
"Values": {
"AzureWebJobs.MyFunctionName.Disabled": true
"AzureWebJobs.MyFunctionName2.Disabled": false
}
}
等
我想听听是否有更好的方法,例如在执行func host start
时从命令行对其进行设置。
答案 2 :(得分:1)
我使用func start --functions [a space separated list of functions]
这是azure-functions-core-tools@3
根据:
--port [-p] Local port to listen on. Default: 7071
--cors A comma separated list of CORS origins with no spaces. Example: https://functions.azure.com,https://functions-staging.azure.com
--cors-credentials Allow cross-origin authenticated requests (i.e. cookies and the Authentication header)
--timeout [-t] Timeout for on the functions host to start in seconds. Default: 20 seconds.
--useHttps Bind to https://localhost:{port} rather than http://localhost:{port}. By default it creates and trusts a certificate.
--cert for use with --useHttps. The path to a pfx file that contains a private key
--password to use with --cert. Either the password, or a file that contains the password for the pfx file
--language-worker Arguments to configure the language worker.
--no-build Do no build current project before running. For dotnet projects only. Default is set to false.
--enableAuth Enable full authentication handling pipeline.
--functions A space seperated list of functions to load.