c# - EventGridTrigger Azure 函数 - 如何立即将错误请求返回到死信
问题描述
我有一个事件网格触发功能。我阅读了文档,发现如果您返回错误的请求,该事件将立即死信(如果设置了死信)https://docs.microsoft.com/en-us/azure/event-grid/交付和重试#failure-codes
如果我想立即死信,是否只是返回HttpResponseMessage
withHttpStatusCode.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);
}
}
解决方案
没有EventGridTrigger异常来强制HttpStatusCode.BadRequest。拥有它会很好,但Microsoft.Azure.WebJobs.Extensions.EventGrid的当前版本不处理此功能。
但是,这种情况的解决方法是使用HttpTrigger函数来处理验证响应代码或调用 Get 验证 url。在此触发器中,您可以处理 HttpResponseMessage。
请注意,当死信将显示在 blob 存储中时,有一个内置(不可配置)约 300 秒的延迟。