簡體   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