gpt4 book ai didi

azure - 独立扩展 Azure 函数(单个函数)

转载 作者:行者123 更新时间:2023-12-02 23:18:31 24 4
gpt4 key购买 nike

我使用 Visual Studio 作为库项目创建了 Azure 函数,有一个包含 12 个函数的项目例如

enter image description here

到目前为止,我的函数托管在专用 AppService 计划中,其中一个函数(EventHub 监听器)每天处理数百万条消息,因此它始终使用 90% 以上的 CPU。

因此,我们计划针对该单一功能扩展或单独应用服务计划。我看到以下可能的解决方案

  1. 将专用应用服务工厂更改为消费。 (不确定定价影响或 SLA)。

  2. 创建一个新项目,移动该项目中的单个功能并将该功能部署在单独的应用服务计划中。 (所需的代码和 CI/CD 管道更改。)

  3. 在2个AppService Plan中部署相同功能的dll,并根据规模删除功能。 (不确定 Azure DevOps 是否可以实现这一点)。

如果客户不同意消费计划,想知道更好的方法。

最佳答案

专用计划相对于消费计划的优势在于可预测性。在消耗计划上运行工作负载通常比在专用计划上运行相同的工作负载更快、更便宜,但使用专用计划确实可以防止使用量意外激增导致成本意外激增,并且还可以防止冷启动问题。

如果您切换到消费模型(选项 1),您将为单个函数执行付费,因此从这个角度来看,无论您运行一个还是两个函数应用都没有区别。您应该根据功能的独立程度来决定如何拆分功能。如果您仅将它们部署为一个单元,则坚持使用一个函数应用程序,但如果您可能想单独更新监听器,请将其放入单独的项目中。

如果您分成两个在单独的专用服务计划上运行的应用程序,那么创建一个新项目(选项 2)无疑是最简洁的方法。但是,将同一项目部署到两个应用程序(选项 3)在技术上是可行的 - 您只需使用应用程序设置禁用不应在每个应用程序上运行的功能。创建名为 AzureWebJobs.MyFunction.Disabled 且值为 true 的设置(请参阅 https://learn.microsoft.com/en-gb/azure/azure-functions/disable-function#functions-2x---all-languages )。

关于azure - 独立扩展 Azure 函数(单个函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53869308/

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