我有一个事件网格触发功能。我阅读了文档,发现如果您返回错误的请求,则该事件将立即被死信(如果设置了死信)https://docs.microsoft.com/en-us/azure/event-grid/delivery-and-retry#failure-codes
如果我想立即进行死信处理,是否只是返回带有HttpResponseMessage
或类似内容的HttpStatusCode.BadRequest
的情况?
即:
[FunctionName("EventGridFunction")]
public static HttpResponseMessage Run([EventGridTrigger]EventGridEvent eventGridEvent, ILogger log)
{
try
{
// do stuff
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (Exception e)
{
return new HttpResponseMessage(HttpStatusCode.BadRequest);
}
}
答案 0 :(得分:0)
没有 EventGridTrigger 异常可以强制 HttpStatusCode.BadRequest 。 拥有它会很好,但是 Microsoft.Azure.WebJobs.Extensions.EventGrid 的当前版本不处理此功能。
但是,这种情况的解决方法是使用 HttpTrigger 函数处理验证响应代码或调用Get验证URL。在此触发器中,您可以处理HttpResponseMessage。
请注意,当死信将显示在Blob存储中时,会有约300秒的内置延迟(不可配置)。