【问题标题】:how do we add properties to a message?我们如何为消息添加属性?
【发布时间】:2019-08-06 22:21:30
【问题描述】:

是否可以在进行绑定时设置消息属性(我认为它们称为 UserProperties)?

在我的函数中,我正在对服务总线进行输出绑定:

    [return: ServiceBus("%Detach:Done%", Connection = "Detach:ServiceBus", EntityType = EntityType.Topic)]

我们在绑定ServiceBus时如何设置消息属性?

【问题讨论】:

  • 您使用的是哪种服务总线客户端(语言)?
  • 最新的servicebus sdk .netcore c#
  • 如果你想为传入的消息设置一个属性,那是不可能的。它必须由发送方完成。如果您想在传出消息上设置属性,请参阅@roman-kiss 提供的答案。

标签: c# azure-functions azureservicebus azure-servicebus-topics


【解决方案1】:
public static class Function7
{
    [FunctionName("Function7")]
    [return: ServiceBus("test2", 
        Connection = "AzureServiceBusConnectionString", EntityType = EntityType.Queue)] 
    public static async Task<Message> Run([ServiceBusTrigger("test", 
        Connection = "AzureServiceBusConnectionString")]string myQueueItem, ILogger log)
    {
        log.LogInformation(
            $"C# ServiceBus queue trigger function processed message: {myQueueItem}");

        var message = new Message(Encoding.UTF8.GetBytes("{}"));
        message.Label = "Hello";
        message.UserProperties.Add("abc", 123);
        return await Task.FromResult<Message>(message);
    }
}

【讨论】:

    【解决方案2】:

    在异步函数中,使用返回值或IAsyncCollector 而不是out 参数。对于 2.x,请使用 Message 而不是像 IAsyncCollector&lt;Message&gt; 这样的 BrokeredMessage。

    然后您可以在消息上设置MessageId 属性。参考这个thread

    var message = new Message() { MessageId = messageId};
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-16
      • 1970-01-01
      • 2022-11-14
      • 1970-01-01
      • 2017-10-29
      • 2015-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多