事件网格、Azure Functions 事件处理程序、EventGridTrigger 行为

Event Grid, Azure Functions Event Handler, EventGridTrigger behavior

我试图了解在 Azure Function v2 函数中使用 EventGridTrigger 时 EventGrid 的行为。 This page(在 MS 官方文档中),详细说明了与从事件处理程序返回的状态代码相关的特定行为,但没有具体说明正在使用哪种类型的事件处理程序。我只能根据状态代码的使用假设它是为 webhook 使用而设计的。但是,Azure 门户中的订阅配置具有 Azure Functions 的事件处理程序。使用此事件处理程序时,如何从 azure 函数触发这些特定行为?另外,使用它与使用标准的 webhook 事件处理程序有什么区别?我发现了 Azure Function 事件处理程序提供的 "additional functionality" 的多次提及,但我似乎找不到任何详细说明任何特定内容的文档。

基本上,Message delivery status 只能由端点类型以编程方式处理,例如 WebHookHybridConnection

对于 EventGridTrigger,处理程序仅允许在重试消息传递时抛出异常。换句话说,没有异常类型强制 BadRequest 状态代码立即触发死信进程(如果配置了死信)。

除此之外,EventGridTrigger 函数没有用处 aeg headers 并且当前版本无法处理具有传递模式的消息 = CloudEventSchemaV1_0 .

请注意,WebHookHybridConnection 处理程序有责任为 validation 握手调用建立响应。 Azure 函数处理程序在 EventGridTrigger 的预处理器中内置了此验证逻辑(目前仅适用于 EventGridSchema 和 CustomInputSchema)

更新:

AEG 事件发送到端点处理程序以下 aeg headers:

aeg-subscription-name=MYSUBSCRIPTION
aeg-delivery-count=0
aeg-data-version=1.0
aeg-metadata-version=1
aeg-event-type=Notification

aeg headers 可以帮助事件处理程序的附加功能,例如; long running process、fan-in 模式等