Azure Функция пропуска триггера IoT - PullRequest
0 голосов
/ 19 июня 2020

Я использую функцию Azure для обработки сообщения от концентратора IOT и вывода в хранилище BLOB-объектов. введите описание изображения здесь

Но функция пропускала сообщения IOT, когда я отправляю с высокой частотой. Например, я отправляю 30 сообщений с 20:40:16 по 20:40:23, но только 3 из них обрабатываются и сохраняются в хранилище BLOB-объектов, и у меня нет идеального места для остальных 27. введите здесь описание изображения

Я использую план использования функций, а Azure заявляет, что масштабирование будет автоматически зависеть от нагрузки. Но из приведенного выше журнала активности работает только один поток и даже не помещается в очередь ввода, что приводит к потере некоторых сообщений.

Итак, что мне делать, чтобы перехватить все сообщения от концентратора IOT?

Ответы [ 2 ]

0 голосов
/ 26 июня 2020

Решение нашел сам. Триггер необходимо изменить с Azure Концентраторы событий на Триггер сетки событий, как показано на изображениях ниже.

Azure Концентраторы событий Azure Триггер сетки

0 голосов
/ 19 июня 2020

Azure Функции в плане потребления могут справиться с этой нагрузкой, но вы можете захотеть создать отдельную группу потребителей в своем Центре Интернета вещей, которую функция может использовать. На портале Azure введите go во встроенные конечные точки и добавьте новую группу потребителей. enter image description here

Затем вы должны указать в своей функции, какую группу потребителей использовать

    [FunctionName("Function1")]
    public static async Task Run([IoTHubTrigger("messages/events",ConsumerGroup = "functions", Connection = "EventHubConnectionAppSetting")]EventData message, 

Я тестировал это с помощью плана потребления. Функция прослушивает IoT Hub по умолчанию. endpoint и запись в хранилище BLOB-объектов с 8-секундной задержкой, чтобы сделать его более похожим на вашу функцию. Я не вижу потерь в сообщениях, отправляю ли я 30 или 100 сообщений. Убедитесь, что никакие другие приложения не используют вашу новую группу потребителей!

...