Функция Azure - AzureWebJobsServiceBusConnectionString отсутствует

Пример использования:

У меня есть функция Azure, которая будет запускаться с помощью serviceBusTrigger. Следуя лучшим практикам, у меня есть строка подключения к служебной шине Azure в appsettings.json и аналогичным образом в app-settings в приложении-функции Azure. Все хорошо!

Теперь я хочу запустить функцию локально и использую cli, например

cd "путь к моей папке с функцией"

func run. \ myfunction.cs

Проблема

Запускается, но выдает ошибку

'Microsoft.Azure.WebJobs.Host: ошибка метода индексации Functions.someFunction. Microsoft.Azure.WebJobs.ServiceBus: строка подключения Microsoft Azure WebJobs SDK ServiceBus 'AzureWebJobsServiceBusConnectionString' отсутствует или пуста. '

Вопросы

1) Можно ли сохранить мою настройку и иметь возможность запускать функцию через cli 2) как мне разрешить эту ошибку, примечание: я понимаю, что функция Azure построена поверх пакета SDK webJob, и эта ошибка немного загадочна.

Прикрепленное изображение показывает настройку для функции, function.json, appsettings.json

введите здесь описание изображения

Спасибо за помощь!


person Shahzad huq    schedule 30.06.2017    source источник


Ответы (1)


Я заметил несколько проблем с изображением, которым вы поделились:

Строки подключения обычно входят в объект строк подключения в файле настроек вашего приложения, например:

{
  "IsEncrypted": false,
  "Values": {
    "appsetting1": "test"
  },
  "ConnectionStrings": {
    "SomeConnectionString": "connectionstring"
  }
}

function.json недействителен. Ваши привязки должны быть массивом, например:

{
    "bindings": [
        {
             ... ....
            "connection": "ConnectionName"
             ... ....
        }
    ]
}

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

 root
  |
  +-- functionname
  |   |-- function.json
  |   \-- run.csx (if working with the CSX model/just code)
  |
  +-- host.json
  +-- local.settings.json

Затем вы можете вызвать функцию из корня, используя func run <functionname>, где имя функции сопоставляется с именем папки.

Имя файла не должно вызывать проблем, переименуйте его в local.settings.json, поскольку оно изменилось.

Вы также можете взглянуть на Инструменты функций Azure для Visual Studio 2017, поскольку он позаботится обо всех настройках за вас и по-прежнему позволит вам запускать команду, как с созданной структурой, с использованием интерфейса командной строки, если ты хочешь.

person Fabio Cavalcante    schedule 30.06.2017
comment
Фабио, спасибо за быстрый ответ. Запуск из корневой папки решил проблему (настройки подобраны правильно). Мои локальные привязки представляют собой массив; однако при формировании примера (на скриншоте) я пропустил скобки массива. - person Shahzad huq; 30.06.2017
comment
У меня было ощущение, что проблема связана с тем, чем вы поделились, а не с тем, что вы настроили. Просто хотел назвать это на всякий случай. Рад слышать, что теперь это работает. - person Fabio Cavalcante; 30.06.2017