事件处理程序是 Azure 事件网格 发送事件进行处理的目的地。 Azure 会自动配置多个服务来处理事件,Azure Functions 就是其中之一。
当你把函数用作事件处理程序时,你会针对每个事件运行自定义代码,而无需配置或管理服务器。
本文介绍了使用函数作为事件处理器的两种方法,并解释了应采用哪种方法。
若要使用 Azure 中的函数作为事件的处理程序,请遵循以下一种方法:
- 使用 事件网格触发器。 将 Azure Function 指定为 终结点类型。 然后指定函数应用和处理事件的函数。
- 使用 HTTP触发器。 将 Web Hook 指定为 端点类型。 然后指定处理事件的函数的URL。
使用第一种方法(事件网格触发器)。 它相较于第二种方法具有以下优势:
- 事件网格会自动验证事件网格触发器。 使用通用 HTTP 触发器时,必须自行实现验证响应。
- 事件网格会根据其判断的该函数处理事件的速率,自动调整向由事件网格事件触发的函数传送事件的速率。 该速率匹配功能避免了因函数无法处理事件而导致的传递错误,因为该函数的事件处理速率会随时间变化。 若要在高吞吐量下提高效率,请在事件订阅上启用批处理。 有关详细信息,请参阅启用批处理。
注意
- 当你使用事件网格触发器通过 Azure 函数添加事件订阅时,事件网格会通过事件网格服务主体的凭证获取目标函数的访问密钥。 当你在Azure订阅中注册事件网格资源提供者时,事件网格会获得权限。
- 如果你用 Microsoft Entra ID 应用保护 Azure 函数,必须采用通用的 webhook 方法,即使用 HTTP 触发器。 添加订阅时,使用 Azure 函数终结点作为 Webhook URL。
教程
| 标题 | 说明 |
|---|---|
| 快速入门:使用函数处理事件 | 将自定义事件发送到函数进行处理。 |
| 教程:将大数据流式传输到数据仓库 | 当事件中心创建捕获文件时,事件网格会将一个事件发送到函数应用。 应用会检索捕获文件并将数据迁移到数据仓库。 |
| 教程:Azure 服务总线到 Azure 事件网格集成示例 | Event Grid 从服务总线主题向函数应用和逻辑应用发送消息。 |
REST API 示例
以下示例展示了 PUT 操作的请求体,该操作创建了以 Azure 函数作为事件处理程序的事件订阅。 它设置目标函数的资源 ID,并启用批处理。
{
"properties":
{
"destination":
{
"endpointType": "AzureFunction",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.Web/sites/<FUNCTION APP NAME>/functions/<FUNCTION NAME>",
"maxEventsPerBatch": 10,
"preferredBatchSizeInKilobytes": 64
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
启用批处理
为了提高吞吐量,可以在订阅中启用批处理。 如果你使用Azure门户,可以在创建订阅或之后设置每批最大事件和首选批处理大小(千字节)。
通过使用 Azure 门户、PowerShell、CLI 或 资源管理器 模板配置批处理设置。
Azure 门户
在门户创建订阅时,在 创建事件订阅 页面,切换到 高级功能 标签页,设置 每批最大事件 数和 首选批次大小(千字节)。
在事件网格主题页面的“功能”标签页中更新现有订阅的这些值。
Azure 资源管理器 模板
在 Azure 资源管理器 模板中设置 maxEventsPerBatch 和 preferredBatchSizeInKilobytes。 有关详细信息,请参阅 Microsoft.EventGrid eventSubscriptions 模板参考。
Azure CLI
使用 az eventgrid event-subscription create 命令,并使用以下参数配置与批处理相关的设置:--max-events-per-batch 或 --preferred-batch-size-in-kilobytes。
Azure PowerShell
使用 New-AzEventGridSubscription 或 Update-AzEventGridSubscription cmdlet 来配置与批处理相关的设置。 使用 -MaxEventsPerBatch 或参数 -PreferredBatchSizeInKiloBytes 来设置你的偏好。
相关内容
有关支持的事件处理程序列表,请参见 事件处理程序 条目。