类似于Azure函数的zip文件中的function.json,它定义了Az func的触发器。是否可以通过编程将触发器从基于计时器更改为基于事件?意思是,我可以在本地计算机上运行一个运行Azure应用程序的python应用程序,该应用程序调用Azure python sdk并说嘿,将Azure Function x的触发器从基于计时器的触发器更改为基于事件中心的触发器,这是其他事件中心名称空间名称和连接字符串信息您需要的。
答案 0 :(得分:1)
这是不可能的。 但是,我可以想到以下解决方法,应该可以实现目标。
首先,您可以在一个功能项目(一个功能应用服务)中定义多个功能触发器。它们可以绑定到不同的目标。像这样:
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;
...
}
}
您无法通过编程方式启用/禁用功能,但可以通过App Service应用程序设置控制其中之一处于活动状态。后者可以通过Web App API进行管理:https://docs.microsoft.com/en-us/rest/api/appservice/webapps/updateapplicationsettings
因此,您可以激活任一触发器。如果与逻辑兼容,甚至可以跳过(停用)激活。