2016-04-12 2 views
1

Новый предварительный просмотр функции azure содержит несколько шаблонов для C#. Но для C# нет шаблона очереди служебных шин. Существует шаблон триггера для узла с служебной шиной. Но при закрытом осмотре он поддерживал только концентраторы уведомлений, а не очередь служебных шин. Можно ли даже написать лазурную функцию, которая может быть запущена только тогда, когда элемент появляется в очереди служебной шины azure? Если это невозможно сейчас, будет ли такой шаблон в ближайшем будущем?Как написать функцию azure, которая может срабатывать, когда элемент появляется в очереди служебной шины azure с помощью C#?

Спасибо. Raghu/..

+0

Просто попробуйте Azure LogicApps. Он имеет разъем служебной шины с триггером. – TusharJ

ответ

3

Обновление: Следующие действия и информация по-прежнему держать, однако теперь мы имеем «ServiceBusQueueTrigger - C#» шаблон жить на портале, так что шаги Обходной путь больше не надо :)

ServiceBus И.С. поддерживается уже для C#, нам просто нужно добавить шаблон для него (мы добавим очень скоро). В общем, шаблоны являются лишь отправными точками - вы всегда можете изменять шаблоны, добавляя дополнительные привязки или начинать с пустого шаблона и создавать свою собственную функцию.

До тех пор пока мы не получим шаблон, вы можете загрузить его, начиная с C# Пустой шаблон. Например, вы можете ввести обязательную информацию, как следующее в Advanced Editor на Интегрировать вкладки:

{ 
    "bindings": [ 
    { 
     "type": "serviceBusTrigger", 
     "name": "message", 
     "direction": "in", 
     "queueName": "samples-input", 
     "connection": "myServiceBus" 
    } 
    ] 
} 

Убедитесь, что ваша функция App имеет AppSetting соответствия имени connection собственности, содержащее Ваш ServiceBus строка подключения. Похоже, что в настоящее время у нас есть некоторые проблемы с сборщиком строк подключения для ServiceBus (который также будет исправлен очень скоро), но вы можете использовать «Настройки функциональных приложений»/«Перейдите в« Настройки приложения »/« Настройки приложения », чтобы добавить это настройки приложения. Затем вы можете использовать соответствующий код функции:

using System; 
using Microsoft.Azure.WebJobs.Host; 

public static void Run(string message, TraceWriter log) 
{ 
    log.Verbose($"C# ServiceBus Queue function processed message: {message}"); 
} 

Эта функция будет вызываться всякий раз, когда новые сообщения добавляются в очередь ServiceBus samples-input.

+0

Я попробую это. Другой вопрос: будет ли сообщение удалено из очереди? – Rudra

+0

Это не сработало.Вот мои привязок: { "привязок": [ { "ИмяОчереди": "соединение" "myrequestqueue" : "myServiceBusConnection", "название" : "myQueueItem", "типа": "serviceBusTrigger", "направление": "в" } ], "отключено": ложные } Вот как моя интеграция вкладка Информация выглядит: имя параметра Сообщение: myQueueItem; Поведение: триггер; Имя очереди: myrequestqueue; Подключение служебной шины: myServiceBusConnection Вот как работает приложение моего func: В разделе «Строки подключения»: name: myServiceBusConnection value: Endpoint = sb: // .... – Rudra

+0

Функция, которую я написал выше, работает для меня. Если я выдаю сообщение типа «text/plain», вызывается моя функция. Выполняется ли ваша функция, если вы вводите тестовые данные в портал и нажмите кнопку «Запустить»? – mathewc

1

Per https://azure.microsoft.com/en-us/documentation/articles/functions-reference/, нет связи с SB. Лучший способ сделать это вместо того, чтобы делать что-то, что (по крайней мере, случайно), работая в группе продуктов, - это представить свою идею в UserVoice - https://feedback.azure.com/forums/355860-azure-functions.

+0

Готово. Если кто-то хочет проголосовать за эту функцию, перейдите сюда: https://feedback.azure.com/forums/355860-azure-functions/suggestions/13413564-should-support-trigger-for-azure-service-bus- queue – Rudra

+0

Я сделал это. Если бы мой ответ был полезным, отметьте его как ответ. Благодаря! –

+0

ServiceBus уже поддерживается. См. Мой ответ ниже. – mathewc

Смежные вопросы