1
Azure関数で初めてF#Typeプロバイダを使用しています。ここでAzure関数とF#Json型プロバイダ
#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ファイルされる:ここでrun.fsxファイルがある
{
"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'
何か提案がありますか?
[<Literal>]
let sample = __SOURCE_DIRECTORY__ + "/sample.json"
type Tweet = JsonProvider<sample>
があれば、私は学ぶことが大好きだ:__SOURCE_DIRECTORY__
値を使用して(?一定のシンボル私はそれが正確に何であるかわからない) - おかげ
これはうまくいきました - ありがとう。私はDon Symeに__SOURCE_DIRECTORY__というものを尋ねました。彼は "Errr。a hack?" –
理想的には、Azure関数は関数実行の作業ディレクトリをその関数に設定します。現在のところ、それはしません。 SOURCE_DIRECTORYは、$ env:HOME + '/ site/wwwroot//'のようなF#ソースファイルのディレクトリに解決されるマクロのように見えます。関数の作業ディレクトリを変更すると、他の.net関数の作業ディレクトリも変更できると思うので、現在のところこれを行うのが最も簡単な方法です。 –
上記のパターン(HOME環境変数+パスを使用)は、今のところ推奨されるアプローチです。私たちはこれをより便利な方法で公開し、あなたがフープを飛び越える必要はありません。 –