首页 > 解决方案 > EventGridTrigger Azure 函数 - 如何立即将错误请求返回到死信

问题描述

我有一个事件网格触发功能。我阅读了文档,发现如果您返回错误的请求,该事件将立即死信(如果设置了死信)https://docs.microsoft.com/en-us/azure/event-grid/交付和重试#failure-codes

如果我想立即死信,是否只是返回HttpResponseMessagewithHttpStatusCode.BadRequest或类似的情况?

IE:

[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);
    }
}

标签: c#azure-functionsazure-eventgrid

解决方案


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

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

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


推荐阅读