通过Visual Studio开发时,Azure函数可编程启用/禁用

时间:2018-04-27 15:56:19

标签: azure azure-functions

我有一组 Azure功能,它们是在 Visual Studio中开发的。

有一个 TimerTrigger 功能,默认情况下使用 DisableAttribute 禁用。这会导致在Azure门户上将"disabled"属性设置为true。 一旦满足特殊条件,将触发另一个函数,该函数使用function.json更新 TimerTrigger "disabled": false文件。这将启动 TimerTrigger

但是当满足另一个条件时,TimerTrigger的function.json用"disabled": true更新,不起作用,TimerTrigger仍然会触发。

执行function.json的更新,如此处所述 How to Enable/Disable Azure Function programmatically

我已经阅读了GitHub上的多个问题,仍然没有答案。 我看到以下解决方法:

  1. 尝试修改host.json文件,每次更新功能列表。但我找不到任何改变host.json文件的样本。此外,我认为这不是一个非常好的方法,因为在这样的更新期间所有函数都被重新加载,并且在文档中有建议使用这种方法仅用于本地调试。 https://docs.microsoft.com/en-us/azure/azure-functions/functions-host-json#functions
  2. 在AppSetting上绑定 DisableAttribute 。但我发现将app.settings更新为复杂的过程。 Change Azure website app settings from code
  3. 重新考虑建筑方法。
  4. TimerTrigger 的主要目的是启用并在服务器关闭时开始调用它(ConnectionValidator)。一旦服务器正常 - 禁用TimerTrigger,并继续通常的工作流程。

    有关于此的任何想法?也许还有其他方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

对于这种情况,我不会改变function.json。感觉很讨厌。

更改应用程序设置,或改为使用相同名称更改环境变量,这应具有相同的效果。

或者甚至可能一直保持触发定时器触发,并检查前提条件作为定时器功能的第一个动作。如果不需要采取任何措施,请立即退出。