看起来 Azure 函数的 zip 文件中的 function.json 定义了 Az func 的触发器。是否可以通过编程方式将触发器从基于计时器的触发器更改为基于事件的触发器?意思是,我可以在我的本地计算机上运行一个 python 应用程序,它调用 Azure python sdk 并说嘿,将 Azure Function x 的触发器从基于计时器的触发器更改为基于事件中心的触发器,这是附加的事件中心命名空间名称和连接字符串信息你需要的。
最佳答案
这是不可能的。 但是,我可以想到以下解决方法,应该可以实现目标。
首先,您可以在一个函数项目(一个函数应用服务)中定义多个函数触发器。他们可能会绑定(bind)到不同的目标。像这样的事情:
public static class Functions
{
[FunctionName("FunctionTimer")]
public static async Task RunAsync([TimerTrigger("%Schedule%")]TimerInfo myTimer, ILogger log)
{
if (!AppSettings.IsTimerTriggerActive)
return;
...
}
[FunctionName("FunctionEventHub")]
public static async Task RunAsync([EventHubTrigger("", Connection = "eventHubConnectionString")] EventData[] eventDataBatch, ILogger log)
{
if (!AppSettings.IsEventHubTriggerActive)
return;
...
}
}
您无法以编程方式启用/禁用某项功能,但您可以通过应用服务应用程序设置控制其中一项处于事件状态。后者可以通过 Web App API 进行管理:https://learn.microsoft.com/en-us/rest/api/appservice/webapps/updateapplicationsettings
因此您可以激活任一触发器。如果这与逻辑兼容,甚至可以跳过(取消)激活。
关于azure - 有没有办法以编程方式更改 Azure 函数触发器类型。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50939889/