Azure Functions 主机实例与 VM 实例

Posted

技术标签:

【中文标题】Azure Functions 主机实例与 VM 实例【英文标题】:Azure Functions Host Instance vs VM Instance 【发布时间】:2020-07-04 14:31:03 【问题描述】:

在专用应用服务计划上运行 Azure Functions 时,主机实例和 VM 实例之间是否存在差异?因为根据this,应用服务计划使用现有的VM 实例。但在我的 Function App 的 Scale Out 计划中,我可以看到增加实例数的选项。根据this,它表示扩展将添加新的虚拟机实例。但根据this,主机实例是完整的Function App 实例。

那么,是否会增加实例数量,在应用服务计划下启动新的 VM 实例?如果不是,那么是否会在可能的情况下在同一个 VM 实例上启动一个新的函数应用实例?对于不同的计划,扩展是否意味着不同?

【问题讨论】:

【参考方案1】:

您可以将它们视为同一事物。

将增加实例数,在 应用服务计划?

是的,它将在应用服务计划下添加一个或多个新 VM 实例。对于 azure 函数中的 Dedicated (App Service) plan,我们总是需要手动扩展/缩小,因为在 azure 函数中它不会动态添加/删除新的计算资源。但是对于其他 2 个计划,它们会动态添加/删除计算资源。

如果不是,那么是否会启动一个新的函数应用实例 如果可能,相同的 VM 实例?

不,新实例将添加到新添加的 VM 实例中。

缩放对于不同的计划意味着不同吗?

这些计划的唯一区别是这样的:

对于Consumption plan或Premium plan,scales out/in会根据传入事件的数量自动进行,不支持scale up功能。

对于Dedicated (App Service) plan,它同时支持scale out/inscale up,但需要手动操作。

希望对您有所帮助。如果您还有其他问题,请告诉我。

【讨论】:

但是专用应用服务计划也有一个自定义的自动扩展功能,可以根据一些指定的指标进行扩展。 如果多个函数应用使用相同的应用服务计划,这是否意味着实际应用实例使用相同的 VM 资源? @AsifulNobel,对于第一个问题,我认为“汽车”这个词让你感到困惑。使用其他 2 个计划时,您无需手动进行任何配置即可横向扩展/横向扩展;但是对于专用应用服务计划,您需要手动配置自动缩放功能,对吗? 对于第二个,是的,它们将共享相同的 VM 资源。 是的,我没有使用其他两个计划。所以,我没有意识到这一点。谢谢。 @IvanYang 高级计划中没有扩展功能吗?我可以在 Portal 中看到升级 EP1 => EP2/EP3 的选项。

以上是关于Azure Functions 主机实例与 VM 实例的主要内容,如果未能解决你的问题,请参考以下文章

VNET 上的 Azure Functions 无法与本地资源通信

访问 VM 的本地主机 - Azure

Azure Functions System.Net.Primitives:值不能为空。 (参数“主机”)

用于PostgresQL的本机Azure数据库与Azure VM中的PostgresQL docker容器

微软增加了Azure专用主机选项 用于在单租户服务器上运行vm

从负载平衡的云服务中删除 Azure VM 实例