使用 ARM 模板动态部署 Azure Function enabled/disabled

Deploy Azure Function dynamically enabled/disabled using ARM template

我有一个 class 库,它是使用 ARM 模板部署的基于计时器的 Azure 函数。一切正常,除了我希望基于目标环境的行为略有不同。当部署到测试环境时,我希望该功能最初被禁用,但在生产中它应该始终被启用。这可能吗?

我目前的解决方法是设置一个应用程序设置,告诉该功能在设置为特定值时立即退出。然而,这似乎是一个糟糕的解决方案,特别是因为定时器触发的函数执行得相当频繁。为了解决这个问题,我在 Azure 门户中使用以下开关手动禁用了该功能:

是否可以从 ARM 模板中指定此开关的所需状态?

看来您不需要在应用程序设置中设置特定值,azure 函数有一个内置的 属性。

尝试使用下面模板片段中的设置来禁用该功能,应该可以。

"siteConfig": {
                    "appSettings": [
                        {
                            "name": "AzureWebJobs.MessageQueueMonitorFunction.Disabled",
                            "value": "true"
                        }
                    ]
                }

扩展 Joy 的回答,效果非常好!

为了大家的利益,上面的"name"属性是这样写的:

AzureWebJobs.<YouFunctionName>.Disabled

其中 <YouFunctionName> 在您的 template.json 中指定:

{
    "resources": [
        "name": "<YourFunctionName>",
        "type": "functions",
         "properties": {
              "config": {
                   "bindings": [
                       {
                      ...
                        }
                    ]
                }
           }
       ]
}