Я написал функцию «Запуск по очереди», но серьезно думаю, что она не работает, даже если я не получаю никакой ошибки.
Я объясняю контекст, в котором я работаю и что я сделал.
У меня есть очередь ... по какой-то причине мне приходится вставлять в очередь около 200 сообщений за раз. Итак, моя функция будет работать около 200 раз почти сразу.
Основным методом функции является статический. Мне это не нравится ... Итак, я создал класс, и вся логика функции там есть:
public static async Task Run([QueueTrigger(Program.CONST_QUEUENAME)]string queueItem, TraceWriter log)
{
try
{
log.Info($"Start: {queueItem}");
await new MyFunction(log).ExecuteAsync(queueItem);
log.Info($"End");
}
catch (Exception ex)
{
log.Error($"Errore: {ex.Message}");
throw ex;
}
}
В методе ExecuteAsync
моего MyFunction
класса я делаю следующий шаг:
- десериализация сообщения
- Выполнение некоторой проверки между десериализованным элементом и некоторыми данными, хранящимися в db
- если проверка в порядке, вызов API. API, обновите еще один дБ
- После вызова API я выполняю
response.EnsureSuccessStatusCode();
, чтобы убедиться, что вызов был в порядке.
Результат выполнения функции НИЧЕГО! Ничего не обновляется в базе данных. Хорошо, я делаю некоторую проверку, чтобы решить, нужно ли мне обновлять базу данных или нет ... но я ожидаю, что произойдет хотя бы одно обновление.
Итак, я обновил функцию, добавив много сообщений в журнал (я веду журнал, используя понимание приложения) и обнаружил:
- в очереди записано около 200 сообщений (поэтому проблема не в записи очереди)
- функция выполняется корректно около 200 раз
- Я вижу аномалию ... как будто я запускаю старую версию функции. Я не вижу все новые сообщения журнала. Очевидно, я развернул новую версию функции.
Так что не так?
Я просто сомневаюсь в публикации ... после развертывания на Azure (через VS) я получаю это сообщение:
Версия функций на вашем хосте Azure не соответствует локальной
версия. Настройка приложения для FUNCTIONS_EXTENSION_VERSION
должно быть обновлено до "~ 1". Обновите параметры приложения Azure, чтобы они соответствовали
версия локальных функций?
--------------------------- ДА НЕТ
Есть идеи?
Спасибо