无法使用 Azure 函数将消息发送到服务总线队列

Unable to send message into Service Bus Queue using Azure function

我有如下所示的 Azure 功能 -

[FunctionName("Demo")]
        public static void Run([ServiceBusTrigger("%Demo-Queue%", Connection = "AzureWebJobsBPGAServiceBus")]string myQueueItem,
             [ServiceBus("%Update-Queue%", Connection = "AzureWebJobsBPGAServiceBus")] ICollector<BrokeredMessage> updateMessage,
            TraceWriter log)
        {
            string query = "SELECT Id FROM MyTable";

            var data = dbs.GetData(query).GetAwaiter().GetResult();

            BrokeredMessage brokeredMessage;
            foreach (var item in data)
            {
                JObject jObject = new JObject(new JProperty("Id", item), new JProperty("MessageId", new Guid(item)));
                brokeredMessage = new BrokeredMessage(jObject.ToString());
                updateMessage.Add(brokeredMessage);
            }
        }

But message going in dead letter queue . why ? Message format is also correct.Any clue ?

如果消息被移动到死信队列,原因可能是one of these。将死信消息移动到死信队列时,将添加两个自定义属性(DeadLetterReason 和 DeadLetterErrorDescription),尝试读取这些属性以查找原因。

您的函数由 Demo-Queue 中的消息触发,消息 myQueueItem was/were 在被触发之前至少被发送到您的函数 Demo 10 次移动到死信队列。 Failing >=10 times 意味着你的 Function 执行没有成功 >= 10 次。

请搜索您的 Function Logs to see if there are any error messages to indicate why your Function execution did not succeed, e.g. due to timeout or errors in your Function code. If it's due to timeout, you may change the autoRenewTimeout property in your host.json 以查看是否可以解决问题。

请注意,如果您有消费计划,autoRenewTimeout 需要保持在最大执行时间 5 分钟(默认)或配置的 functionTimeout 属性 的限制内(荣幸地最多 10 分钟)在你的 host.json 文件中。