Приложение-функция Azure = локально запустить одну функцию Azure для отладки

В Visual Studio я создал приложение-функцию Azure с несколькими функциями.

Когда я запускаю отладчик Function App с панели инструментов, все функции запускаются.

Есть ли способ вызвать одну функцию из приложения в Visual Studio 2017?

4 ответа

Нет простого способа добиться этого, но это возможно.

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

изменив файл function.json:

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

или с помощью атрибута [Disable]:

[Disable]
[FunctionName("Function")]
[NoAutomaticTrigger]
public static void Function(string input, TraceWriter log)
{ }
  1. func запускается с помощью Azure Core Tools (только v1.x)

Запустите функцию с помощью команды: func run <functionName>

  1. Укажите функции в файле host.json

В вашем файле host.json укажите функции, которые должны быть запущены:

{ 
   "functions":[ "FunctionToRun" ]
} 

Как упомянул @Pawel Maga, есть три способа.

У меня есть немного лучший подход для 3-го варианта (укажите функции в файле host.json).

Вместо того, чтобы возиться с host.json (мы могли бы забыть отменить при публикации.. Я делал это много раз:p).

Мы можем переопределить массив функций, установив значение в local.settings.json.

Например: установите, как показано ниже, в local.settings.json

{
  "Values": {
    "AzureFunctionsJobHost__functions__0":  "FunctionToRun",
    "AzureFunctionsJobHost__functions__1":  "SecondFunctionToRun",
  }
}

Вместо того, чтобы писать код ниже в host.json

{ 
   "functions":[ "FunctionToRun", "SecondFunctionToRun" ]
} 

В качестве обновления к приведенным выше ответам: похоже, вы можете отключить функции в localsettings.json таким образом.

      {
  "Values": {
    "AzureWebJobs.MyFirstFunction.Disabled": true,
    "AzureWebJobs.MySecondFunction.Disabled": true
  }
}

Это то, что я планирую сделать для нашей команды, поскольку у него самый приятный синтаксис «безопасных» вариантов (подходы, которые не нужно отменять при публикации).

См. Здесь: https://docs.microsoft.com/en-us/azure/azure-functions/disable-function?tabs=portal#localsettingsjson

Основные инструменты функций Azure позволяют разрабатывать и тестировать свои функции на локальном компьютере из командной строки или терминала. Ваши локальные функции могут подключаться к работающим службам Azure, и вы можете отлаживать свои функции на локальном компьютере, используя полную среду выполнения функций. Вы даже можете развернуть функциональное приложение в своей подписке Azure.

https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local

Другие вопросы по тегам