gpt4 book ai didi

azure - 使用 azure 函数的数据访问层模式

转载 作者:行者123 更新时间:2023-12-02 01:03:46 25 4
gpt4 key购买 nike

我们目前正在开发一种使用 Azure 函数和 Azure 存储队列绑定(bind)的设计。队列中的每条消息代表一个完整的事务。 Azure 函数将绑定(bind)到该队列,以便队列中出现新消息时立即触发该函数。然后该函数将在 SQL DB 中提交事务。

初步实现也已完成;并且运行良好。然而,回顾过去,我们正在考虑以下几点:在典型的 DAL 中,有使用 Entity Framework 、存储库模式等的完善设计模式。但是,在无服务器代码中实现 DAL 时,我们没有找到类似的指导/最佳实践。因此,我的问题是:此类模式是否应该使用 Azure 函数来实现(这将具有挑战性:)),或者无服务器代码是否应该尽可能保持轻量,否则这根本不是 azure 函数的用例?

最佳答案

不需要任何太特别的东西。我们使用一组常规的库 DLL 来处理各种事务 - 数据库、与 Azure 的其他部分交互(例如检索连接字符串的 Key Vault secret )、解析文件上传、业务规则等。这些库以 netstandard20 为目标,因此当正确的触发器可用时,我们可以更轻松地迁移到 Functions v2。

主要是设计您的库,使它们高度模块化,这样您就可以最大限度地减少完成工作所需的加载量(假设在系统的其他区域中重用很重要,通常也是如此)。

如果现在可以使用依赖注入(inject)的话会更容易。请参阅this在获得官方 DI 支持之前,我们中的一些人已经通过多种方式将其组合在一起。 (DI 位于 Functions 的路线图上,我相信 3.0 版本会发布。)

起初,我有点担心库方法的启动时间,但底层 WebJobs 堆栈本身已经相当重,而且 Functions 启动性能似乎无论如何都有很大差异(至少在更便宜的层上)。在测试过程中,我们不常执行的函数之一的变化范围从大约 300 毫秒到大约 3800 毫秒的峰值,以解析完全相同的测试文件,除了大约 55 毫秒外,所有函数都花费在启动上。

关于azure - 使用 azure 函数的数据访问层模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48900315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com