Azure 应用服务计划:功能与应用服务?

sco*_*ctr 36 azure azure-web-app-service azure-functions

在应用服务计划中托管 Azure Function 时,与使用与同一应用服务计划关联的应用服务(编辑:用于静态 API)相比,是否有任何显着差异?我认为唯一的区别是该功能提供了额外的开箱即用触发器。我遗漏了哪些差异会导致我更喜欢其中之一?

我还想确认,如果应用服务计划中未配置扩展,则在应用服务计划中托管 Azure Functions 实际上会限制可扩展性。据我了解,使用消费或高级托管时,功能会根据需要自动扩展,无需额外配置。

Pet*_*ons 37

在应用服务计划中托管 Azure Function 时,与使用与同一应用服务计划关联的应用服务相比,是否有任何显着差异?我认为唯一的区别是该功能提供了额外的开箱即用触发器。我遗漏了哪些差异会导致我更喜欢其中之一?

嗯,Azure Function 与应用服务不同。Azure 函数由外部事件或计时器触发。然后它执行该函数的代码。当托管在消耗计划上时,允许此执行最多运行5 或 10 分钟。当您需要更长的执行时间时,您需要在应用服务计划上运行它。

应用服务可以托管您创建的任何应用。例如,就像一个网站(连续运行并且在开始执行某些操作之前不需要触发)或 API。

我还想确认,如果应用服务计划中未配置扩展,则在应用服务计划中托管 Azure Functions 实际上会限制可扩展性。据我了解,使用消费或高级托管时,功能会根据需要自动扩展,无需额外配置。

正确的是,在应用服务计划中托管 Azure Functions 时,您有责任确保扩展应用服务以允许该函数在负载下良好运行。这就是为什么消费计划旨在处理此问题,以便开发人员可以专注于功能而无需担心基础设施。

因此,对于集成场景来说,azure 函数非常适合。对于网站来说,应用服务可能是最好的解决方案。

针对您的评论:

我应该提到这个问题是在托管 Restful API 而不是 UI 应用程序的背景下提出的。在这种情况下,我没有看到功能和应用程序服务之间有太大区别,但如果我遗漏了某些内容,请纠正我

有几件事:首先,有一个特定的最佳点。如果流量足够大,基于天蓝色功能的消费计划可能比专用应用程序服务计划更昂贵。这当然取决于很多因素(CPU 使用率、请求持续时间等)。此外,您将无法开箱即用地使用诸如 Asp.Net Core 中间件之类的东西。最后,我认为,如果您的 api 变得足够大,那么管理单个 ASP.NET Core 解决方案可能比管理大量具有小函数的 azure 函数或一个具有大量函数的 azure 函数项目更容易,但是嘿,这只是我的意见(说实话还没有真正处理过)

一些需要考虑的资源:


Shi*_*iji 9

主要区别在于付款方式:

  • 您为每次执行支付的 Azure Functions 消耗计划
  • 应用服务中的 Azure Functions(专用计划)您需要为每分钟分配的硬件付费。

使用应用服务计划时,您还可以控制函数在哪个 VNET 中运行。您可能有安全要求,这使得这一点变得很重要。

您是正确的,如果您在未配置为扩展的应用程序服务中运行它,那么吞吐量将受到分配的硬件的限制。

有关详细信息,请参阅:https ://learn.microsoft.com/en-us/azure/azure-functions/functions-scale