用 Azure Functions 替换 Azure API

Replacing Azure APIs with Azure Functions

**背景:**我目前有一个网络应用程序依赖于一个单体 azure api 应用程序。 Web 应用使用 Azure 存储部署为静态站点。 API 部署为 Azure API 应用程序。

我正在启动一个从 .net 4.6 到 .net core 3.1 的应用程序端口,并且正在考虑不同的体系结构选项。我最初考虑将单体 API 分解为大约 5 个不同的 Azure API 应用程序(不同的 api 基于系统中功能的逻辑分组)位于 Azure API 管理。但是我提供的样本成本非常高,几乎没有实际流量。

现在我正在考虑用 Azure 功能替换那些 Azure API 应用程序,我认为,这将解决开发过程中的成本问题,而且将是一个高质量的生产解决方案,维护更少,同样易于安装在 CI/CD 管道中。

我找不到任何关于真正将 Azure API 应用程序与 Azure Functions(带有 HTTP 触发器)区分开来的文档。

我目前有一个使用身份服务器 4 编写的授权服务器作为 API 应用程序,其他 api 对其进行身份验证。我可以对 Azure Functions 做同样的事情吗?有没有我遗漏的问题?

按 consumption-based 计划迁移到 Azure Functions 肯定会解决 $$$ 问题,因为您需要为调用函数的时间付费,而不是为 运行 未调用的时间付费实际上 - 实际上你会使用事件驱动模型来执行。

当 运行 应用程序在无服务器模型(如 Azure Functions)中时,您需要注意一些关键区别。

您需要关注的关键事项如下

  • 长 运行 事务(Azure Functions 可能不是这种情况的最佳方案 - 尽管 Durable Functions 可能是)
  • 冷启动时间 可能 无服务器解决方案存在问题 - 也有解决方案可以为您解决这个问题(参见 Functions Premium 计划)

根据您的描述,虽然您已经正确分解了 API,但在没有看到更多解决方案的情况下,最好的猜测是 Functions 可能更适合你在做。

HTH