我想以批处理模式接收来自 Azure ServiceBus 主题的消息。
阅读https://docs.microsoft.com/en-us/azure/azure-functions/functions-best-practices它指出:
对于 C# 函数,您可以将类型更改为强类型数组。例如,方法签名可以是 EventData[] sensorEvent,而不是 EventData sensorEvent。
我有一个方法:
public static void Run([ServiceBusTrigger("mytopic name", "MySubscription",
AccessRights.Listen, Connection = TopicService.ConnectionStringName)]
string messages, TraceWriter logger)
此方法有效,但当时需要 1 条消息。
根据 Microsoft 文档,我可以将其更改为:
public static void Run([ServiceBusTrigger("mytopic name", "MySubscription",
AccessRights.Listen, Connection = TopicService.ConnectionStringName)]
string[] messages, TraceWriter logger)
并将以下内容添加到 host.json 文件 ( https://docs.microsoft.com/en-us/azure/azure-functions/functions-host-json ):
{
"aggregator": {
"batchSize": 10,
"flushTimeout": "00:00:30"
}
}
但是运行该函数,我得到一个异常:
mscorlib:执行函数时出现异常:MyFunction。Microsoft.Azure.WebJobs.Host:异常绑定参数“消息”。System.Runtime.Serialization:反序列化 System.String[] 类型的对象时出错。输入源的格式不正确。System.Runtime.Serialization:输入源的格式不正确。
注意:主题和订阅启用了“启用批量操作”设置。
我在这里想念什么?