Compartilhar via

从Azure 流分析 Azure Functions输出

Azure Functions是一种无服务器计算服务,可用于按需运行代码,而无需显式预配或管理基础结构。 它允许你实现由Azure或合作伙伴服务中发生的事件触发的代码。 Azure Functions响应触发器的能力使其成为Azure 流分析的自然输出。 此输出适配器使用户能够将流分析连接到Azure Functions,并运行脚本或代码片段来响应各种事件。

也不支持从在多租户群集中运行的流分析作业连接到虚拟网络(VNet)中的Azure Functions。

Azure 流分析通过 HTTP 触发器调用Azure Functions。 Azure Functions输出适配器具有以下可配置属性:

属性名称 说明
函数应用 Azure Functions应用的名称。
功能 Azure Functions应用中函数的名称。
密钥 如果要从另一个订阅使用 Azure 函数,可以通过提供用于访问函数的密钥来执行此操作。
最大批大小 一个属性,可用于设置发送到Azure函数的每个输出批处理的最大大小。 输入单位为字节。 默认情况下,此值为 262,144 字节(256 KB)。
最大批数 一个属性,用于指定发送到Azure Functions的每个批处理中的最大事件数。 默认值为 100。

Azure 流分析预期 Functions 应用中的 HTTP 状态为 200,这些批处理已成功处理。

当Azure 流分析从Azure函数收到 413(“http 请求实体太大”)异常时,它会减小发送到Azure Functions的批的大小。 在Azure函数代码中,使用此异常来确保Azure 流分析不会发送超大批。 此外,请确保函数中使用的最大批计数和大小值与流分析门户中输入的值一致。

注释

在测试连接期间,流分析会发送一个空批来Azure Functions测试两者之间的连接是否有效。 确保 Functions 应用处理空批处理请求,以确保测试连接通过。

此外,在时间范围内没有事件登陆的情况下,不会生成任何输出。 因此,不会调用 computeResult 函数。 此行为与内置窗口化聚合函数一致。

Partitioning

分区键基于查询中的 PARTITION BY 子句。 输出编写器的数量遵循 完全并行查询的输入分区。

输出批大小

默认批大小为 262,144 字节(256 KB)。 每个批处理的默认事件计数为 100。 批大小是可配置的,可以在流分析输出选项中增加或减少。

限度

Azure Functions应在 100 秒内完成请求,因为 HTTP 客户端在 100 秒后超时。 如果Azure Functions处理一批数据需要 100 秒以上,则会有一个超时会触发重试。 此重试可能会导致重复数据,因为Azure Functions将再次处理数据,并可能生成相同的输出,因为它可能已在上一个请求中部分输出

代码示例

Azure Functions输出可用于将消息中继到不受支持的数据库、类似 Redis 或更新表 in Azure SQL

后续步骤