azure - 有没有办法以编程方式更改 Azure 函数触发器类型。

标签 azure azure-functions

看起来 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/

相关文章:

wpf - Azure Clickonce 发布

azure - 使用 Terraform 在 Azure Stack Edge 中部署 VM

azure-functions - OpenApiExample 未显示在 swagger UI 中

c# - AdomdDataReader GetValue(0) 返回 ????而不是非英文字符

azure - 如何在 ARM 模板输出中获取 Azure VM 的 FQDN

c# - 提交 C# MapReduce 作业 Windows Azure HDInsight - 响应状态代码不表示成功 : 500 (Server Error)

azure - SQL Azure 0.0.0.0 防火墙规则

Azure 应用服务被存储帐户拒绝并出现 403 错误

azure - Powershell 脚本不会列出过期的 key 保管库证书

azure - 部署在同一个 Azure 函数应用中的多个函数是否共享冷启动?