1

我可以完全离线(无网络连接)开发和测试 Azure Functions 吗?我了解 Azure Functions 可以在本地调试,但这与完全脱离 Azure 平台工作不同。

我在 Azure 文档中找到了一些参考资料,我将其解释为连接到 Azure 是运行 Azure Functions 所必需的,即使在本地也是如此。

FWIW,我在 Visual Studio 2017 (15.3.2) 中使用 Azure Functions 工具

4

2 回答 2

2

答案是不。尽管您可以通过 Azure 模拟器以断开连接的方式使用某些绑定,例如 Azure 存储,但并非所有绑定都提供断开连接的工作方式。

于 2017-08-30T18:02:15.040 回答
0

这取决于。某些基础架构(例如 Timer 使用的 [Singleton])需要存储帐户,因为它们使用 blob 租约进行协调。可以禁用日志记录。

在一种极端情况下,如果您要绑定到云资源(即 DocDb)或使用基于云的触发器,那么显然您必须在线。一些绑定(如 blob)可以针对存储模拟器工作,但这是一个具体情况。

在另一个极端,Azure Functions 参数绑定使其对模拟非常友好,可以让您直接离线(以及在单元测试中)调用您的函数,而不是通过 Azure Functions 侦听 + 调度逻辑。例如,您可以将 Blob 绑定到 Stream 或 TextReader,然后直接调用您的函数并将绑定到内存或文件系统的流传递给它们。IAsyncCollector 接口也非常友好。我们自己在 WebJobs SDK 中的单元测试大量利用了这一点(请参阅https://github.com/Azure/azure-webjobs-sdk/blob/b8674651654f27a51ffadd0d38b4f89ce246b7a1/test/Microsoft.Azure.WebJobs.Host.UnitTests/Indexers/ReturnValueTests.cs举个例子)

于 2018-02-14T17:17:03.790 回答