azure函数复杂度级别指导

时间:2018-02-13 19:33:30

标签: entity-framework model-view-controller azure-functions dto code-complexity

我正在尝试将使用MVC模型和实体框架的现有API应用转换为Azure功能。这是为了利用Azure功能中的无服务器架构的可扩展性和成本模型。

当前的API应用程序并不是非常耗时 - 基本上它接受一些JSON格式的消息,将其转换为C#类,进行一些转换,然后使用Entity Framework保存到数据库中。请求可以在10秒内完成,因此我认为这符合消费计划的Azure功能时间限制。

令我担心的是应用程序中的代码量,因为它是具有DTO,模型和数据访问层(真正的分层架构)的分层架构。 Azure功能是否适合托管具有分层架构的此类应用程序?

我觉得Azure功能应该是理想的一小块逻辑。我想检查这种方法是否存在任何问题。我还读到,在函数中保留大量文件和依赖项可能会增加新实例的初始加载时间。

非常感谢任何指导。此外,如果Azure功能不是这种复杂代码的正确方法可能是替代方案 - 我是否应继续将其作为API应用程序维护,其中包含应用程序服务当前的可伸缩性和价格限制?

我相信Web作业也会有类似的限制,因为Azure功能和MS现在要求每个人都转移到Azure功能。

2 个答案:

答案 0 :(得分:2)

Azure Functions可以处理完整的代码方案。我的建议是明确使用Visual Studio工具支持和预编译。这也将为您提供IDE的全部优点,并促进单元测试和其他最佳实践。 以下是Azure功能VS工具的链接和教程,以供进一步参考:https://blogs.msdn.microsoft.com/webdev/2017/05/10/azure-function-tools-for-visual-studio-2017/

答案 1 :(得分:0)

基本上我也做了同样的事情。我创建了实现调用输入参数处理的类库。然后我只引用类库并从Azure函数调用这些库。基本上我只是将执行任务推迟到类库。这样做的好处是双重的:

  • 将函数代码的复杂性降低到try-except,实例化处理程序并使用Function params调用处理程序
  • 能够在Azure环境之外进行(自动化)测试