azure 获取Service Bus触发器中队列上消息的标签属性

mwg9r5ms  于 2022-11-30  发布在  其他
关注(0)|答案(1)|浏览(145)

传统上,当消息被发送到队列时,它具有特定的类型,因此可以很容易地将其反序列化为特定的类型
但是,我现在需要将两种完全不同类型的消息发送到同一个队列

  1. [FunctionName("MyFunction")]
  2. public async Task QueueMessageReceivedAsync(
  3. [ServiceBusTrigger("%QueueName%", Connection = "event-bus-connection")]
  4. string mySbMsg)
  5. {
  6. //If message.Label == "MessageType1"
  7. {
  8. var messageType1Object = JsonConvert.DeserializeObject<MessageType1>(mySbMsg);
  9. var okResponse = await ProcessMessageType1(messageType1Object);
  10. return okResponse;
  11. }
  12. else
  13. {
  14. var messageType2Object = JsonConvert.DeserializeObject<MessageType2>(mySbMsg);
  15. var okResponse = await ProcessMessageType(messageType2Object);
  16. return okResponse;
  17. }
  18. }

这种方法不起作用,因为我不知道如何访问底层服务总线消息的label属性?
无论如何,我都不能更改消息本身,但底层服务总线消息的标签将允许我正确处理消息
有人能帮忙吗?
保禄

xoshrz7s

xoshrz7s1#

以前可以定义额外的参数来获取系统属性。string label来检索标签和消息数据。另外,无论.NET版本如何,您都可以接收Message(如果Functions SDK太旧,则为BrokeredMessage)并访问标签属性。

相关问题