在Azure Functions中使用F#

7
目前在Azure Functions中使用F#的最佳方法是什么?我希望我的函数既有输入绑定又有输出绑定(例如到队列或事件中心)。 我找到的有以下内容:
- Queue triggered FSX - 但它没有输出绑定,而且据报道速度较慢。 - 编译F#代码为exe文件并将函数作为外部可执行文件运行 - 但是输出队列绑定对我来说不太清楚,我猜想exe文件必须显式发送该项。
是否有一种方法可以直接将具有输入和输出的F#函数托管为Azure函数?类似于C#Run方法?
理想情况下,输入和输出应该是强类型的:一个对象、记录或鉴别联合。
2个回答

6
模板只是起点 - 您可以在门户中的“集成”选项卡中轻松地添加其他输入/输出绑定。例如,如果您添加一个名为“result”的新 Blob 输出,并绑定到 blob 路径“test-output/%rand-guid%”,则可以编写以下脚本来编写 Blob:
open System
open System.IO

let inputPath = Environment.GetEnvironmentVariable("input")
let input = File.ReadAllText(inputPath)
let message = sprintf "F# script processed queue message '%s'" input
System.Console.Out.WriteLine(message)

let resultPath = Environment.GetEnvironmentVariable("result")
File.WriteAllText(resultPath, input);

关于更强类型的 F# “一流”支持,正如我在您链接的论坛帖子中提到的那样,我们正在努力中 :) 目前,F# 与所有其他 out of proc 脚本类型一起被放在同一个存储桶中,在此管道绑定进出通信机制使用的是环境变量,就像你上面看到的那样。


6

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接