[英]how to add custom properties or label/subject for azure servicebus topic messages when using apache camel?
[英]In java with azure function @ServiceBusQueueTrigger, how to get the Label, Custom Properties and Broker Properties?
这是JAVA中的azure web页面示例,从azure服务总线获取消息内容:
@FunctionName("sbprocessor")
public void serviceBusProcess(
@ServiceBusQueueTrigger(name = "msg",
queueName = "myqueuename",
connection = "myconnvarname") String message,
final ExecutionContext context
) {
context.getLogger().info(message);
}
这只返回消息的内容。 如何获得您可以在服务总线资源管理器中看到的其他字段:Label、自定义属性和代理属性?
例如,您可以通过向方法参数添加@BindingName("UserProperties")
等注释来检索消息元数据,如下所示。 您可以使用绑定表达式绑定到消息的任何元数据。 在下面的这种情况下,它是“属性”和“标签”。
@FunctionName("sbprocessor")
public void serviceBusProcess(
@ServiceBusQueueTrigger(name = "msg", queueName = "myqueuename", connection = "myconnvarname")
String message,
final ExecutionContext context,
@BindingName("UserProperties")
Map<String, Object> properties,
@BindingName("Label")
String label) {
context.getLogger().info("Message received: " + message + " , properties: " + properties + " , label: " + label);
}
我使用 Service Bus Explorer 作为 Message Sender 来设置消息的元数据,如下所示,并且能够在“UserProperties”绑定中使用上面的代码在消费者端看到那些元数据。
注意 C# function SDK 比 Java 有一个好处。在 C# 中,您可以获得整个BrokeredMessage
object,这更容易直接导航元数据。 但不幸的是,到目前为止,这在 Java SDK 中是不可能的,您必须单独绑定。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.