禁用的Azure功能仍在运行

时间:2017-09-29 14:59:51

标签: azure azure-functions

我刚刚开始使用Microsoft Azure功能进行测试。我有我的VS2017发布,我的功能很好。我目前有一个与我合作的功能。它设置在每5分钟一次的计时器上。

但是,即使我已经禁用了#34;该功能似乎正在执行。这可以在监视器中以及与其交互的系统中看到。我能够阻止它的唯一方法是停止整个功能组。当我然后启动功能组时,它会再次每5分钟启动一次禁用功能。

我错过了什么吗?禁用单个功能是否还有其他用途?

如何让函数组中的单个函数不按其定义的计划执行?

感谢。

2 个答案:

答案 0 :(得分:9)

您所经历的是预期的行为,虽然不是理想的行为。这是门户体验中的一个错误。

Function运行时直接使用预编译函数的二进制文件中的元数据。以下是禁用功能的注释示例。

[TimerTrigger("0 */5 * * * *"), Disable()]

这是由visual studio生成的function.json上面的注释。

{
"generatedBy": "Microsoft.NET.Sdk.Functions.MSBuild-1.0.2",
  "configurationSource": "attributes",
  "bindings": [
    {
      "type": "timerTrigger",
      "schedule": "0 */5 * * * *",
      "useMonitor": true,
      "runOnStartup": false,
      "name": "myTimer"
    }
  ],
  "disabled": true,
  "scriptFile": "..\\bin\\FunctionApp3.dll",
  "entryPoint": "FunctionApp3.Function1.Run"
}

由预编译函数生成的function.json由门户网站使用,这是门户网站中显示的内容。更改门户中函数的禁用状态时,在function.json中更改disabled属性,但函数运行时不会使用它。因此它继续执行。

当您将其部署在禁用状态时,运行时会意识到它并按预期将其尊重。

我已经打开了这个bug来修复门户体验。 https://github.com/Azure/azure-functions-ux/issues/1857

答案 1 :(得分:0)

今天,我遇到了同样的问题,在Azure中禁用该功能之后,建议您重新启动Function服务。由于Azure需要刷新元数据,因此重新启动是实现元数据的解决方案之一。