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

时间:2016-04-05 20:57:21

标签: azure azure-functions

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

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

此代码有哪些限制?例如。访问远程数据存储,网络等。

2 个答案:

答案 0 :(得分:17)

更新:以下答案仍然正确(仍然有效),但现在还有对预编译功能的一流支持。有关详细信息,请参阅wiki page

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

#r "System.Web.Http"

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

public static Task<HttpResponseMessage> Run(HttpRequestMessage req)

有关此问题的其他详细信息,请参阅this SO post

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

.\Resizer\Resizer.exe %original% %resized% 200

关于限制,所有Azure功能代码都在应用服务沙箱中运行,其限制描述为here

答案 1 :(得分:3)

由于缺乏针对VS2017的Azure功能工具支持incompatibility with Azure SDK 3.0而感到气馁,我不得不放弃功能并回避使用VS2017和WebJobs SDK的方法。

然后在2017年3月16日宣布,微软的Donna Malayeri在excellent blog post中记录了最简单的方法。

它可以完成我想要的一切 - 真正的智能感知,调试功能。这很棒,我不会回头。