![](/img/trans.png)
[英]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.