将预编译的 .NET 代码作为 Azure 函数执行
Execute pre-compiled .NET code as Azure Function
如何上传预编译的 .NET 程序集(-ies)并将我的代码作为 Azure Functions 执行?
我正在寻找一种方法来 运行 一些复杂的域逻辑,这些域逻辑包含在自定义程序集中并被单元测试等覆盖。
此代码有哪些限制?例如。访问远程数据存储、网络等
更新:下面的答案仍然正确(仍然有效),但是现在也首先class支持预编译函数。有关详细信息,请参阅 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)
有关此的其他详细信息,请参阅 。
您还可以部署自定义可执行文件并从您的 Azure Functions 调用它们。例如,如果您从 Windows BAT 模板开始,您可以使用它调用一个 exe。这是我们存储库中的 a sample,显示了图像调整大小的示例。在此示例中,我们有一个 BAT 脚本,每当将新图像上传到 blob 容器时都会触发该脚本,并且该脚本会调用 Resizer.exe
工具来调整大小:
.\Resizer\Resizer.exe %original% %resized% 200
关于限制,所有 Azure Functions 代码都在 应用服务沙箱 中运行,其限制在 here.
中有描述
要 运行 Azure 函数中的预编译 .NET 程序集,可以通过 FTP 在函数根文件夹(在 bin 文件夹中)上传自定义 dll,然后使用#r 从 azure 函数代码中引用它。
这是一个例子,一个名为 "WorkOnImages.dll" 的 dll 被上传到 azure in azure function 文件夹中:
然后在azure函数中引用dll :
由于缺乏对 VS2017 的 Azure Function 工具支持而感到沮丧,incompatibility with Azure SDK 3.0,我正准备放弃 Functions 并回退到使用 VS2017 和 WebJobs SDK 的方法。
随后于 2017 年 3 月 16 日宣布,Microsoft 的 Donna Malayeri 在 excellent blog post 中记录了最简单的方法。
它可以满足我的所有需求 - 真正的智能感知、调试功能。太棒了,我不会再回头了。
如何上传预编译的 .NET 程序集(-ies)并将我的代码作为 Azure Functions 执行?
我正在寻找一种方法来 运行 一些复杂的域逻辑,这些域逻辑包含在自定义程序集中并被单元测试等覆盖。
此代码有哪些限制?例如。访问远程数据存储、网络等
更新:下面的答案仍然正确(仍然有效),但是现在也首先class支持预编译函数。有关详细信息,请参阅 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)
有关此的其他详细信息,请参阅
您还可以部署自定义可执行文件并从您的 Azure Functions 调用它们。例如,如果您从 Windows BAT 模板开始,您可以使用它调用一个 exe。这是我们存储库中的 a sample,显示了图像调整大小的示例。在此示例中,我们有一个 BAT 脚本,每当将新图像上传到 blob 容器时都会触发该脚本,并且该脚本会调用 Resizer.exe
工具来调整大小:
.\Resizer\Resizer.exe %original% %resized% 200
关于限制,所有 Azure Functions 代码都在 应用服务沙箱 中运行,其限制在 here.
中有描述要 运行 Azure 函数中的预编译 .NET 程序集,可以通过 FTP 在函数根文件夹(在 bin 文件夹中)上传自定义 dll,然后使用#r 从 azure 函数代码中引用它。
这是一个例子,一个名为 "WorkOnImages.dll" 的 dll 被上传到 azure in azure function 文件夹中:
然后在azure函数中引用dll :
由于缺乏对 VS2017 的 Azure Function 工具支持而感到沮丧,incompatibility with Azure SDK 3.0,我正准备放弃 Functions 并回退到使用 VS2017 和 WebJobs SDK 的方法。
随后于 2017 年 3 月 16 日宣布,Microsoft 的 Donna Malayeri 在 excellent blog post 中记录了最简单的方法。
它可以满足我的所有需求 - 真正的智能感知、调试功能。太棒了,我不会再回头了。