[英]Event Hub input binding for Azure Functions
我有一个Azure函数,其输入绑定到事件中心。
public static async Task Run(TraceWriter log, string eventHubMessage)
触发该函数后,默认情况下每次执行它会收到多少消息?
是1执行= 1消息吗?
我已经阅读了文档,并了解可以在函数的host.json文件中设置以下属性:
"eventHub": {
// The maximum event count received per receive loop. The default is 64.
"maxBatchSize": 64,
// The default PrefetchCount that will be used by the underlying EventProcessorHost.
"prefetchCount": 256
}
maxBatchSize是否意味着我将在1次执行中收到64条消息?
默认情况下它将是1比1处理,但是您也可以批量处理。 将函数的签名更改为
public static async Task Run(TraceWriter log, string[] eventHubMessages)
(如果像我一样更改名称,也要重命名绑定参数)
参考github问题 。
@Mikhail是正确的。 我只想添加以下内容:
如果您需要每次执行来批量处理,请更改以下内容:
一种。 在function.json
,添加属性"cardinality":"many"
如图所示这里 。
b。 在run.csx
,修改功能签名并循环处理消息,例如,
public static async Task Run(TraceWriter log, string[] eventHubMessages) { foreach(string message in eventHubMessages) { // process messages } }
通过在问题中指定的host.json配置,您可以尝试使用正确的批处理大小和预取缓冲区来满足工作流程的需求。
附加评论:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.