2017-02-11 4 views
1

My Azure Funktion hat zwei Eingabeparameter:Eingang zu benutzerdefinierten Klasse Bindung scheint nicht für Blob arbeiten

  • Ereignis Hubs auslösen
  • Blob Eingangs Bindung

ich zu binden bin versucht, beide Parameter zu benutzerdefinierten Typ (F # Rekord in meinem Fall). Die Bindung funktioniert gut für den Auslöser, aber nicht für Blog-Bindung, die die folgenden Fehler gibt: Hier

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

ist der Code:

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

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

Ersetzen F # Datensatz mit einer Klasse nicht helfen .. .

ist die Funktionsdefinition:

{ 
    "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 
} 

Antwort

2

die Blob-Bindings leider d on't unterstützt derzeit POCO-Bindungen wie Sie es erwarten. Wir haben ein offenes Problem in unserem Repo, das diese verfolgt.

um das zu umgehen, empfehle ich in Ihrer Methode zu einem Bach, String oder eine der anderen unterstützten Typen und dabei die Deserialisierung in Ihre POCO Art zu binden.

+0

Ah, danke, gut zu wissen. Die Dokumente sagen, dass sie https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob P. S. unterstützt werden. der "SO question" link in der github-Ausgabe ist kaputt, es zeigt auf sich selbst – Mikhail

+0

Ja, ich hatte auch einen doc-Bug dafür protokolliert :) https://github.com/Azure/Azure-Functions/issues/180. Wir werden es behoben :) – mathewc

+0

Besser beheben Sie das SDK;) – Mikhail

Verwandte Themen