Как получить messageid очереди внутри функции триггера очереди

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

public static void ProcessQueueMessage([QueueTrigger("%testingQueue%")] TestingMessageModel testMessage, TextWriter log)
{
   // want to do some logging for this particular triggered message using the messageid. How to get that?
}

Добавление TestingMessageModel в качестве ссылки, он не имеет никакого guid. Я хочу использовать GUID, который создает Azure, когда сообщение помещается в очередь.

public class TestingMessageModel
{
  public int FromOrg {get; set;}
  public DateTime BatchDate {get; set;}
  public Payments[] payments {get; set;}
}

1 ответ

Решение

Он поддерживает связывать id напрямую, вы можете проверить мой код.

public static void ProcessQueueMessage([QueueTrigger("myqueue")] string message,ILogger logger, string id)
        {
            logger.LogInformation(message);
            logger.LogInformation($"{message}id={id}");
        }

https://i.s tack.imgur.com/2MYmA.png

https://i.s tack.imgur.com/yUuRY.png

Надеюсь, это поможет вам.

Триггер очереди предоставляет несколько свойств метаданных (включая идентификатор сообщения).

Эти свойства могут использоваться как часть выражений привязки в других привязках или как параметры в вашем коде:

См. https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-queue-trigger?tabs=csharp#message-metadata

Другие вопросы по тегам