将预编译的.NET代码作为Azure Function执行

Mik*_*kov 11 azure azure-functions

如何上传预编译的.NET程序集(-ies)并将我的代码作为Azure Functions执行?

我正在寻找一种方法来运行一些复杂的域逻辑,它包含在自定义程序集中,并由单元测试等覆盖.

这个代码有什么样的限制?例如,访问远程数据存储,网络等.

mat*_*ewc 17

更新:以下答案仍然正确(仍然有效),但现在也有预编译功能的一流支持.有关详细信息,请参阅Wiki页面.

文档(此处链接)描述了如何使用语法从C#函数引用外部库和Nuget包#r,例如:

#r "System.Web.Http"

using System.Net;
using System.Net.Http;
using System.Threading.Tasks;

public static Task<HttpResponseMessage> Run(HttpRequestMessage req)
Run Code Online (Sandbox Code Playgroud)

有关此内容的其他详细信息,请参阅此SO帖子.

您还可以部署自定义可执行文件并从Azure功能中调用它们.例如,如果从Windows BAT模板开始,则可以使用它来调用exe.以下是我们的回购中的示例,显示了图像调整大小的示例.在此示例中,我们有一个BAT脚本,只要将新图像上载到blob容器时就会触发该脚本,并且脚本会调用Resizer.exe工具来执行调整大小:

.\Resizer\Resizer.exe %original% %resized% 200
Run Code Online (Sandbox Code Playgroud)

关于限制,所有Azure功能代码都在App Service沙箱中运行,其沙箱的限制在此处描述.