У меня есть две функции 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;
}
}
}