如何在消费函数应用程序的 ARM 模板中实施横向扩展限制

How can I enforce scale out limit in an ARM template for a consumption function app

我有一个函数应用程序,我想防止它扩展到多个实例,因为函数的性质意味着如果允许它扩展就会出现并发问题。

在我对消费功能应用程序特有的这个问题的研究中,我发现的很少。我知道这是可行的,因为我可以在 Azure 门户中设置横向扩展限制,如下图所示。配置此选项后,我的功能完全按照预期工作。

但是,我想在我的 ARM 模板中配置它,以便新的部署已经设置好,但是我在 ARM 模板中找不到与该设置对应的任何内容。我什至尝试导出模板,然后更改 Scale out 配置并再次导出以比较两个模板,但没有区别。

如果有人对此有更多了解,或者我如何能以其他方式实现同​​样的目标,将不胜感激。

您可以将 WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT 应用程序设置设为 1(请参阅文档 here)。

在 ARM 模板中,您可以像这样为函数添加应用程序设置:

{
    "type": "Microsoft.Web/sites",
    "apiVersion": "2018-11-01",
    "name": "<functionname>",
    "location": "<location>",
    "dependsOn": [...],
    "tags": {},
    "kind": "functionapp,linux",
    "identity": {
        "type": "SystemAssigned"
    },
    "properties": {
        "name": "<functionname>",
        "siteConfig": {
            "appSettings": [
                {
                    "name": "WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT",
                    "value": "1"
                },
                ...
            ]
        }
    }
}