我希望能够通过**.Net 6进程外**ServiceBusTrigger
对服务总线消息执行灵活的操作。操作包括放弃、完成、延迟以及死信排队消息。也就是说,通过in-processServiceBusTrigger
的ServiceBusReceivedMessage
和ServiceBusMessageActions
绑定可以使用相同的操作。
但是,进程外触发器似乎只能将消息体绑定为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中提到的,未来是孤立的。因此,我试图避免进程内,但我意识到这可能是目前唯一的解决方案。
提前感谢!
2条答案
按热度按时间30byixjq1#
所描述的操作是否以其他方式可用于进程外触发器?如果没有,你知道它是否在近期发布的路线图上吗?
目前还不可能。进程外/隔离的worker SDK无法传递给Function本机SDK类型。您可以跟踪一些相关问题以获取更新。
gudnpqoy2#
对于遇到这个问题的任何人来说,MessageActions现在支持进程外的ServiceBusTrigger。该支持可从Microsoft.Azure.Functions.Worker.Extensions.ServiceBus包的5.14.0版本获得。
举个例子,看这里的公告。