Правило не работает, потому что
- Правило работает против системных или пользовательских свойств, а не тела сообщения.
- То, что выводит функция js, является просто телом сообщения, т.е.
context.bindings.outputSbMsg = { Indicator: 'Itinerary'};
отправляет сообщение { Indicator: 'Itinerary'}
, и мы не устанавливаем никакого свойства.
И правило по умолчанию с 1 = 1 истинным фильтром позволяет выбирать все сообщения в подписке, так что вы видите, что сообщения отправляются туда все время. Проверьте документ фильтров темы для более подробной информации.
Пока что по проекту , что вывод функции js не может заполнять свойства сообщения. Чтобы фильтр работал, мы должны вместо этого отправлять сообщения со свойством, используя SDK. Установите пакет azure-sb
, затем попробуйте пример кода ниже.
const azuresb = require("azure-sb");
const connStr = "ServiceBusConnectionString";
const mytopic = "mytopic";
var serviceBus = azuresb.createServiceBusService(connStr);
const msg =
{
body: "Testing",
customProperties: {
Indicator: 'Itinerary'
}
};
serviceBus.sendTopicMessage(mytopic, msg, function(error) {
if (error) {
context.log(error);
}
else{
context.log("Message Sent");
}
});