如何在队列触发器函数中获取队列 messageid

How to get the queue messageid inside the queue trigger function

我正在尝试获取 Azure Web 作业队列中当前正在处理的消息的消息 ID。找不到关于如何获得它的任何适当文档。

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。我想使用 Azure 在将消息放入队列时创建的 GUID。

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

支持直接绑定id,可以查看我的代码

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

希望对您有所帮助。

队列触发器提供几个元数据属性(包括消息 ID)。

这些属性可用作其他绑定中的绑定表达式的一部分或用作代码中的参数:

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