1
Я впервые использую поставщика типов F # в функциях Azure. Вот файл run.fsx:Функции 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:
{
"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'
Любые предложения? Благодаря
Это сработало - спасибо. Я спросил у Дона Сим, что такое __SOURCE_DIRECTORY__, он сказал: «Errr. Hack?» –
В идеале Azure Functions установит рабочий каталог для выполнения функции для этой функции. В настоящее время этого нет. SOURCE_DIRECTORY выглядит как макрос, который разрешает директорию исходного файла F #, например: $ env: HOME + '/ site/wwwroot/<имя_функции>/'. Это, безусловно, самый простой способ сделать это в настоящее время, так как я считаю, что изменение рабочего каталога функции может изменить рабочий каталог для других функций .net. –
Шаблон выше (с использованием переменной окружения HOME + путь) является рекомендуемым подходом на данный момент. Мы планируем разоблачить это более удобным способом, чтобы вам не пришлось прыгать через обручи. –