Функция Azure, запускаемая очередью, не всегда ведет журнал - PullRequest
0 голосов
/ 08 мая 2019

У меня есть две функции Azure в решении, которое я создаю.Первый - это webhook, который просто принимает полезную нагрузку, выполняет некоторую проверку и помещает полезную нагрузку в очередь.Вторая функция имеет QueueTrigger, который читает из этой очереди и обрабатывает сообщение.Решение вроде бы работает нормально, все входящие сообщения обрабатываются нормально.Проблема, которую я вижу, связана с регистрацией.По какой-то причине все вызовы QueueTrigger не добавляют журнал на вкладку монитора функции.Например, у меня сегодня 13 вызовов webhook, и у меня должно быть соответствующее количество вызовов триггера очереди, однако у меня есть только 5 зарегистрированных вызовов.Также бывают случаи, когда я вижу журналы, которые должны быть в функции триггера очереди, встроенные в журналы webhooks.Вы знаете, что может быть причиной этого?

Вот основной код функции:

    public static class UpdateQueueProcessor
    {
        [FunctionName("UpdateQueueProcessor")]
        public static async void Run([QueueTrigger("updates", Connection = "StorageConnectionString")]string myQueueItem, ILogger log)
        {
            try
            {
                log.LogInformation($"Queue Processor Invoked: {myQueueItem}");

                //convert the queue payload to an object
                var data = JsonConvert.DeserializeObject<WebhooksData>(myQueueItem);

                //retrieve what quickbooks environment to target
                var qbEnv = Environment.GetEnvironmentVariable("Environment");

                var refreshService = new RefreshService();
                refreshService.Logger = log;

                log.LogInformation($"Environment:  {qbEnv}");

                foreach(var x in data.EventNotifications)
                {
                    log.LogInformation($"Invoking Update");
                    await refreshService.Update(x);
                    log.LogInformation($"Update Complete");
                };
            }
            catch(Exception ex)
            {
                log.LogInformation($"An error has occurred:  {ex.Message + " " + (ex.InnerException == null ? "" : ex.InnerException.Message)}");

                throw;
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...