azure - 功能较少的多功能应用程序或功能较多但功能较少的应用程序?

标签 azure azure-functions

我们目前正在 Azure 中的每个环境/每个区域部署一个 Function App。这些功能应用程序内部包含许多功能。将服务计划设置为消耗并因此动态后,我们对此相当满意,因为它降低了 ARM 模板中的操作复杂性。

但我们确实想知道,是否最好为每个环境提供更多“功能应用程序”并将我们的功能分散到它们之间?

这样做有什么真正的好处吗?因为我们认为动态服务计划会提高性能?

最佳答案

乔丹,

这个问题的答案实际上取决于您使用函数处理的工作负载类型。

虽然缩放 Controller 将处理缩放以满足需求,但函数应用程序中的函数确实在每个实例上共享资源,并且资源密集型(内存或 CPU)可能会影响同一应用程序中的其他函数。

同一 Function App 中的函数之间也没有进程隔离。它们都在同一个进程中运行(除了一些脚本语言,如 Python、Batch 等)和同一个应用程序域中。因此,如果隔离是一个因素(出于安全性、依赖管理、共享状态等原因),您可能需要考虑将功能拆分到不同的应用程序中。

版本控制和部署是另一个值得考虑的因素,因为部署单元是函数应用程序(而不是单个函数)

话虽如此,如果您的工作负载没有遇到资源消耗问题,并且上述问题也不是问题,正如您所指出的,在单个功能应用程序中运行多个功能可以显着简化管理,所以我不会如果没有必要,就不要改变这种方法。

希望这会有所帮助!

关于azure - 功能较少的多功能应用程序或功能较多但功能较少的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40877236/

相关文章:

Azure Powershell - AzureAdUser V AzAdUser

python - azure Blob : upload directory content using a loop in Python

logging - Serilog Azure 函数 V3

c# - Azure函数: HttpRequestMessage does not contain a definition for 'CreateResponse'

node.js - 为什么这个Azure时间触发功能不会失败?

c# - 以编程方式创建 Blob 存储容器

python - Azure Functions IP 地址超出范围

azure - azure 函数的身份验证 token 缓存

azure - 在 Azure 应用服务上为容器启用 SSH 会将垃圾转储到日志流中,我做错了什么吗?

c# - 随机 Azure Function 应用程序失败 : Host thresholds exceeded [Connections]