我有几个带有队列触发器的Azure函数。在版本2中
public static void Run(string message, ICollector<string> output, ILogger log) {
try { DoMyFunction(message, output, log); }
catch { // HOWTO: Tell Queue Not to Bother Retrying }
}
所有向前的队列都作为输出集合。
Given a Message that is not supported
When then message is processed by my function
Then my function should return a status that ensures the message is not retried
我假设我们要处理的是HTTP 400错误请求-因此,我正在寻找与之等效的
public static HttpStatusCode Run(string message, ICollector<string> output, ILogger log)
{
try {
DoMyFunction(message, output, log);
return HttpStatusCode.OK;
}
catch { return HttpStatusCode.BadRequest; }
}
答案 0 :(得分:1)
用于服务总线的messageHandlerOptions in host.json将对您有用(特别是自动完成)。您可以使用BrokeredMessage上的方法,而不是返回在Azure Functions绑定的上下文中没有意义的HTTP响应。 stackoverflow post可能会有所帮助,尽管请注意答案已经过时。
在查找文档时,您应该查找有关服务总线绑定的信息,而不是“队列存储”或“队列触发器”的信息,因为这些绑定是针对Azure存储队列的。
答案 1 :(得分:0)
如果我理解正确,则应该在host.json
中配置功能,并将maxDequeueCount
设置为1。