EventGridTrigger Azure函数-如何将错误请求立即返回给死信

时间:2019-10-09 10:24:10

标签: c# azure-functions azure-eventgrid

我有一个事件网格触发功能。我阅读了文档,发现如果您返回错误的请求,则该事件将立即被死信(如果设置了死信)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);
    }
}

1 个答案:

答案 0 :(得分:0)

没有 EventGridTrigger 异常可以强制 HttpStatusCode.BadRequest 。 拥有它会很好,但是 Microsoft.Azure.WebJobs.Extensions.EventGrid 的当前版本不处理此功能。

但是,这种情况的解决方法是使用 HttpTrigger 函数处理验证响应代码或调用Get验证URL。在此触发器中,您可以处理HttpResponseMessage。

请注意,当死信将显示在Blob存储中时,会有约300秒的内置延迟(不可配置)。