Azure功能可以离线开发吗?

时间:2017-08-30 16:15:31

标签: azure azure-functions azure-functions-runtime

我可以完全脱机开发和测试Azure功能(没有网络连接)吗?我了解Azure功能可以在本地进行调试,但与从Azure平台完全断开连接的工作方式不同。

我发现Azure文档中的一些引用,我解释为连接到Azure是运行Azure功能所必需的,甚至是本地的。

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

2 个答案:

答案 0 :(得分:1)

答案是否定的。虽然您可以通过Azure模拟器以断开连接的方式使用某些绑定,例如Azure存储,但并非所有绑定都提供了断开连接的方法。

答案 1 :(得分:0)

这取决于。 一些基础设施(如[Singleton],由Timer使用)需要一个存储帐户,因为它们使用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作为示例)