输入绑定到自定义类似乎不适用于blob

时间:2017-02-11 23:50:52

标签: azure f# azure-functions

我的Azure功能有两个输入参数:

  • 事件中心触发
  • Blob输入绑定

我正在尝试将两个参数绑定到自定义类型(在我的情况下为F#记录)。绑定适用于触发器,但不适用于博客绑定,这会产生以下错误:

Microsoft.Azure.WebJobs.Host: Error indexing method 'Functions.MailboxFanOut'. 
Microsoft.Azure.WebJobs.Host: Can't bind Blob to type 'Run+CustomerName'.

以下是代码:

[<CLIMutable>]
type CustomerName = {
    UserName: string
}

let Run(item: CustomerName, userNames: CustomerName, log: TraceWriter) =
    log.Verbose("F# function executing")

用课程替换F#记录并没有帮助......

这是函数定义:

{
  "bindings": [
    {
      "type": "eventHubTrigger",
      "name": "item",
      "direction": "in",
      "path": "blabla",
      "connection": "eventhubs",
      "consumerGroup": "$Default"
    },
    {
      "type": "blob",
      "name": "userNames",
      "path": "tada/123",
      "connection": "foo",
      "direction": "in"
    }
  ],
  "disabled": false
}

1 个答案:

答案 0 :(得分:2)

不幸的是,blob绑定目前还没有像您期望的那样支持POCO绑定。我们在跟踪此here的repo中有一个未解决的问题。

要解决此问题,我建议绑定到Stream,字符串或其他一种受支持的类型,并在方法中对您的POCO类型进行反序列化。