对 .Net 6 Isolated Worker ServiceBusTriggers 的消息执行 MessageActions

Perform MessageActions on Messages for .Net 6 Isolated Worker ServiceBusTriggers

我希望能够通过 .Net 6 进程外 ServiceBusTrigger 对服务总线消息执行灵活的操作。操作包括放弃、完成、延迟以及死信排队消息。 IE。通过 进程中 ServiceBusTrigger.

ServiceBusReceivedMessageServiceBusMessageActions 绑定可用的相同操作

然而,进程外触发器似乎只能将消息体绑定为 string,以及 FunctionContext。所描述的操作是否以其他方式可用于进程外触发器?如果没有,您知道它是否在近期版本的路线图上吗?

操作如何可用于进程内触发器的示例:

[FunctionName(nameof(InProcessReceiver))]
public async Task RunAsync(
   [ServiceBusTrigger("%TOPIC_NAME%", "%SUB_NAME%", Connection="CONNECTION_NAME")] 
   ServiceBusReceivedMessage message,
   ServiceBusMessageActions messageActions
)
{
   await messageActions.DeadLetterMessageAsync(message);
   //await messageActions.AbandonMessageAsync(message);
   //await messageActions.CompleteMessageAsync(message);
   //await messageActions.DeferMessageAsync(message);
}

进程外触发器示例,我想对其执行与上述相同的操作

[Function(nameof(OutOfProcessReceiver))]
public async Task RunAsync(
   [ServiceBusTrigger("%TOPIC_NAME%", "%SUB_NAME%", Connection="CONNECTION_NAME")] 
   string mySbMsg
)
{   
   //How to access message actions and bind them to the current message here?          
}

正如微软团队在这篇roadmap blog post中提到的,未来是孤立的。因此我试图避免进程内,但我意识到这可能是目前唯一的解决方案。

提前致谢!

Are the described actions available for out-of-process triggers in some other way? If not, do you know if it's on the roadmap for near future releases?

目前不可能。 process/isolated 个工作 SDK 无法传递给 Function 本机 SDK 类型。您可以跟踪一些相关问题以获取更新。