首页 > 解决方案 > ServiceBus Azure 函数进程外

问题描述

我想将 .net5 与 AzureFunction V3 和 ServiceBus-Trigger 一起使用。如果使用 .net5,我将被迫选择进程外变体。

是否可以像使用进程内变体一样获得“MessageReceiver”和 Message-Array?

进程内变体:

        [FunctionName("ConsumeFromAzureServiceBus")]
        public static async Task Run([ServiceBusTrigger("mytopic", "mysubscription",
                Connection = "AZURE_SERVICEBUS_CONNECTION")]
            Message[] myQueueItems,
            MessageReceiver messageReceiver,
            ILogger log)
        { ... }

MessageReceiver 和 Message 在进程外包中似乎不可用。进程外变体中的正确方法是什么?

谢谢,亲切的问候

标签: azure-functionsazureservicebusservicebus

解决方案


谢谢codebraneVova Bilyachat。发布您的建议作为帮助其他社区成员的答案。

您可以尝试将消息绑定到消息类型而不是字符串:

public async Task Run([ServiceBusTrigger("queue", Connection = "ConnectionString")] Message  message, string id, MessageReceiver messageReceiver, FunctionContext executionContext)

您可以使用 message.SystemProperties.LockToken

您可以参考Azure Function .Net 5 Using ServiceBusTrigger IMessageReceiver on ServiceBusTrigger。你可以在 GitHub 上打开一个问题:azure-functions-dotnet-worker


推荐阅读