Azure功能:如何在本地开发环境中仅启动特定功能?

时间:2019-05-20 08:29:10

标签: azure-functions azure-functions-runtime

如果我想在开发环境中启动所有可用功能,只需执行以下操作:

 func host start

是否有一种方法可以选择可用功能的子集,而不必将要停用的功能移出工作目录等?

PS我正在使用Python作为函数本身。

3 个答案:

答案 0 :(得分:2)

有三种实现方法。

  1. Disable functions

一个正在修改function.json:

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

另一种方法是使用Disable属性来防止函数被触发。

    [Disable]
 [FunctionName("Function")]
 [NoAutomaticTrigger]
 public static void Function(string input, TraceWriter log)
{
}
  1. 使用Azure Functions Core Tools,仅适用于版本1.x

    func run <functionName>

  2. host.json

    {
     "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.