Функции Azure. Как запустить только определенную функцию в локальной среде разработчика? - PullRequest
1 голос
/ 20 мая 2019

Если я хочу запустить все доступные функции в среде разработчика, я просто делаю:

 func host start

Есть ли способ выбрать подмножество доступных функций, не перемещая предназначенные для деактивации функции из рабочего каталога и т. Д .?

PS Я использую Python для самой функции.

Ответы [ 2 ]

2 голосов
/ 20 мая 2019

Существует три способа его реализации.

  1. Отключить функции :

Один изменяет функцию.json:

"bindings": [
    ...
],
"disabled": "IS_DISABLED"

Другой - использование атрибута Disable для предотвращения запуска функции.

    [Disable]
 [FunctionName("Function")]
 [NoAutomaticTrigger]
 public static void Function(string input, TraceWriter log)
{
}
  1. С Базовые инструменты функций Azure , только для версии 1.x

    func run <functionName>

  2. host.json

    {
     "functions": [ "QueueProcessor", "GitHubWebHook" ]
    }
    

Обновление:

4: как ответил jtlz2, этот способ предназначен для локального отключения функций с помощью local.settings.json.

{
  "Values": {
     "AzureWebJobs.MyFunctionName.Disabled": true
     "AzureWebJobs.MyFunctionName2.Disabled": false
   }
}

** Обновление: ** поскольку @ahmelsayed объясняет кое-что о том, что существует множество вариантов вызова только одной функции, поэтому я обновляю ее здесь.

«Отключено» предназначено для динамического включения или выключения функции. Среда выполнения по-прежнему будет загружать функцию и отображать любые ошибки или проблемы с функцией (неправильные настройки и т. Д.), Но не будет выполнять код. Есть много способов включить / отключить функцию, потому что некоторые хотят сохранить это в управлении исходным кодом, а для некоторых это операция devops

Массив functions в host.json - это то, о чем я изначально не знал. Он был добавлен в среду выполнения для удобства разработчиков среды выполнения, у которых есть большая папка samples , которую они хотели бы загружать только подмножество. Это полностью игнорирует функции, которые не перечислены. Они все равно не будут проиндексированы или загружены.

1 голос
/ 20 мая 2019

Кажется, в последнее время возникли некоторые затруднения из-за отключения функций.

Как указано на https://github.com/Azure/Azure-Functions/issues/736#issuecomment-471072316,, можно использовать local.settings.json для достижения этой цели. Просто добавьте к этому:

{
  "Values": {
    "AzureWebJobs.MyFunctionName.Disabled": true
    "AzureWebJobs.MyFunctionName2.Disabled": false
  }
}

и т.д.

Мне было бы интересно узнать, есть ли лучший способ, например, установка его из командной строки при выполнении func host start.

...