繁体   English   中英

在 java 和 azure function @ServiceBusQueueTrigger 中,如何获取 Label,Custom Properties 和 Broker Properties?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM