【问题标题】:How to push a message onto azure service bus within a function如何在函数中将消息推送到 Azure 服务总线
【发布时间】:2019-12-08 19:40:12
【问题描述】:

我需要用 C# 编写的 azure 函数将消息推送到服务总线上。我在网上看到的示例展示了如何在新消息发生时触发 azure 函数。

有例子吗?

当前的天蓝色函数(C#)

[FunctionName("IHandleMessage")]
        public void Run([ServiceBusTrigger("my.topic", "my.subscription", Connection = "mybus_SERVICEBUS")]string mySbMsg, ILogger log)
        {

            // send new message?

        }

非常感谢! J

更新

如何在 azure 函数中创建新消息

        public void Run([ServiceBusTrigger("my.topic", "my.subscription", Connection = "mybus_SERVICEBUS")]string mySbMsg, ILogger log)
        {            
            ServiceBusOutput("hello", log);  // Create a new message
        }

        [FunctionName("AnotherEvent")]
        [return: ServiceBus("my.other.queue", Connection = "mySERVICEBUS")]
        public static string ServiceBusOutput([HttpTrigger] dynamic input, ILogger log)
        {
            log.LogInformation($"C# function processed: {input.Text}");
            return input.Text;
        }

【问题讨论】:

    标签: c# visual-studio-code azure-functions azureservicebus


    【解决方案1】:

    你需要寻找output binding的例子。

    以下示例显示了发送服务总线队列消息的 C# 函数:

    [FunctionName("ServiceBusOutput")]
    [return: ServiceBus("myqueue", Connection = "ServiceBusConnection")]
    public static string ServiceBusOutput([HttpTrigger] dynamic input, ILogger log)
    {
        log.LogInformation($"C# function processed: {input.Text}");
        return input.Text;
    }
    

    这是创建多条消息的 C# 脚本代码:

    public static async Task Run(TimerInfo myTimer, ILogger log, IAsyncCollector<string> outputSbQueue)
    {
        string message = $"Service Bus queue messages created at: {DateTime.Now}";
        log.LogInformation(message); 
        await outputSbQueue.AddAsync("1 " + message);
        await outputSbQueue.AddAsync("2 " + message);
    }
    

    【讨论】:

    • 是否可以发送到不同的主题?
    • 是的,您可以在 ServiceBus 属性中使用EntityType = EntityType.Topic
    • 我想在我的 ServiceBusTrigger 函数中触发这条新消息。不知道这个例子如何
    • 为这个可能激怒@Jack 的评论提前道歉。亚历克斯提供了一个答案,而您不断添加问题而没有标记他的答案。也许您应该先这样做,然后再征求更多信息?毕竟,他确实回答了你的问题。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2020-06-11
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 2019-01-23
    相关资源
    最近更新 更多