Azure函数和F#Json类型提供程序

时间:2017-02-06 14:15:16

标签: azure-functions f#-data

我在Azure Functions中首次使用F#Type Provider。这是run.fsx文件:

#r "FSharp.Data"
#r "Microsoft.WindowsAzure.Storage"

open System
open FSharp.Data
open Microsoft.WindowsAzure.Storage.Table

type Tweet = JsonProvider<"sample.json">

let Run (queueItem: string, tweets: ICollector<Tweet>) =  
    ()

这是project.json文件:

{
  "frameworks": {
    "net46": {
      "dependencies": {
        "FSharp.Data": "2.3.2"
      }
    }
  }
}

sample.json与其他文件位于同一文件夹中

当我运行它时,我得到了这个:

> 2017-02-06T13:40:22.946
> D:\home\site\wwwroot\TweeterDataCleaner\run.fsx(9,14): error FS3033:
> The type provider 'ProviderImplementation.JsonProvider' reported an
> error: Cannot read sample JSON from 'sample.json': Could not find file
> 'D:\Windows\system32\sample.json'

有什么建议吗? 感谢

1 个答案:

答案 0 :(得分:2)

当我遇到类似问题时,我发现了一种解决方法 - 使用__SOURCE_DIRECTORY__值(常量?符号?我不确定它到底是什么):

[<Literal>]
let sample = __SOURCE_DIRECTORY__ + "/sample.json"
type Tweet = JsonProvider<sample>

我很想知道是否有更好的方法来指定它。