Рекомендуется использовать настройки приложения, которые вы можете сделать, перейдя на портал.[Примечание: они не означают function.json, когда они говорят настройки приложения.]
Вариант 1. Использование настроек приложения На портале Azure перейдите к своему приложению функции foo
->Confuguration
, и вы должны увидеть вкладку Application Settings
с несколькими уже определенными переменными.Вам нужно создать новую переменную, нажав кнопку New application setting
.Установите имя как AzureWebJobs.bar.Disabled
и значение как true
.Обратите внимание, что имя приложения функции foo
не фигурирует в имени переменной.
Опция 2: использование host.json Поскольку вы ищете отключение функции из кода, вы можетепопробуйте сделать это в host.json.Обратите внимание, что это предназначено для локальной разработки и не рекомендуется для prod, но работает.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]
.Это конструкция Functions 1.x, но она работает и в 2.x.Как и выше, пользовательский интерфейс портала не будет отображать это правильно.
[Disable]
[FunctionName("Function1")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
}
Опция 4: путем удаления атрибута FunctionName Только если вы используете C #.Это может показаться нелогичным, но если вы удалите атрибут FunctionName из своей функции, он не будет рассматриваться как таковой.
// [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.