我正在尝试将使用MVC模型和实体框架的现有API应用转换为Azure功能。这是为了利用Azure功能中的无服务器架构的可扩展性和成本模型。
当前的API应用程序并不是非常耗时 - 基本上它接受一些JSON格式的消息,将其转换为C#类,进行一些转换,然后使用Entity Framework保存到数据库中。请求可以在10秒内完成,因此我认为这符合消费计划的Azure功能时间限制。
令我担心的是应用程序中的代码量,因为它是具有DTO,模型和数据访问层(真正的分层架构)的分层架构。 Azure功能是否适合托管具有分层架构的此类应用程序?
我觉得Azure功能应该是理想的一小块逻辑。我想检查这种方法是否存在任何问题。我还读到,在函数中保留大量文件和依赖项可能会增加新实例的初始加载时间。
非常感谢任何指导。此外,如果Azure功能不是这种复杂代码的正确方法可能是替代方案 - 我是否应继续将其作为API应用程序维护,其中包含应用程序服务当前的可伸缩性和价格限制?
我相信Web作业也会有类似的限制,因为Azure功能和MS现在要求每个人都转移到Azure功能。
答案 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函数调用这些库。基本上我只是将执行任务推迟到类库。这样做的好处是双重的: