代码之家  ›  专栏  ›  技术社区  ›  Rahul Soni

使用任何配置禁用某些Azure功能

  •  0
  • Rahul Soni  · 技术社区  · 5 年前

    在使用Azure功能时,我有一种情况,我希望一个功能应用程序的一些功能处于“禁用”模式,而其他功能则处于启用状态。问题是,我不想使用“功能”屏幕手动执行此操作,在该屏幕上可以轻松启用/禁用各个功能。有一篇文章说函数2.x支持这一点(函数1.x不是我的选择)。

    https://docs.microsoft.com/en-us/azure/azure-functions/disable-function

    只是这篇文章对需要做什么有点含糊。上面写着,我引用了>

    在Functions 2.x中,可以使用应用程序设置禁用函数。例如,要禁用名为QueueTrigger的函数,可以创建名为AzureWebJobs.QueueTrigger.Disabled,并将其设置为true。要启用该功能,请将应用程序设置设置为false。

    我试过了,但没有记录在案。我有一个名为 foo 以及一个名为 bar . 我都试过了:

    disabled: true 在函数.json

    以及:

    foo: { 
      bar: {
        disabled: true
      }
    }
    

    在进行这些更改和重新部署之后,对UI没有影响。我错过了什么?

    0 回复  |  直到 5 年前
        1
  •  1
  •   Turbo    5 年前

    推荐的方法是使用应用程序设置,您可以通过访问门户网站来进行设置。[注:不是说函数.json当他们说应用程序设置时。]

    在azure门户中,导航到你的功能应用 foo -> Confuguration ,你应该看到 Application Settings 已经定义了几个变量的选项卡。您需要通过单击 New application setting 按钮。将名称设置为 AzureWebJobs.bar.Disabled 和价值 true 变量名中没有数字。

    选项2:使用主机.json https://docs.microsoft.com/en-us/azure/azure-functions/functions-host-json#functions

    {
        "functions": [ "function1", "function2" ] // Don't list function "bar" here, and it would get disabled.
    }
    

    请注意,门户将不会正确显示此项,并将“bar”列为已启用,但当您点击该函数时将获得404。

    选项3:使用Disable属性 如果您使用的是C,您也可以使用 [Disable] 属性。这是一个函数1.x构造,但它也可以在2.x中工作。与上面类似,门户用户界面将不会正确显示这一点。

        [Disable]
        [FunctionName("Function1")]
        public static async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
        ILogger log)
    {
    }
    

        // [FunctionName("Function1")]  // Comment this or delete this line to disable this function
        public static async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
        ILogger log)
    {
    }
    

    这在两个运行时都应该有效。该函数不会在azure门户中显示。