serviceBusTrigger не является зарегистрированной ошибкой в ​​функциях Azure для Javascript - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь создать функцию, которая запускается, когда сообщение становится доступным в подписке Azure Service Bus.Я последовал краткому примеру из официальных документов .

Запуск приложения локально через func host start приводит к следующей ошибке: "ServiceBusTriggerJS: Тип привязки 'serviceBusTrigger' не зарегистрирован. Убедитесь, что тип указан правильно и расширение привязки установлено."

Моя настройка:

package.json содержит модуль узла Azure: "azure": "^2.2.1-preview".Версия узла: 8.11.

function.json, как в примере:

{
  "disabled": false,
  "bindings": [
    {
      "topicName": "myTopic",
      "subscriptionName": "mySubscription",
      "connection": "MyServiceBus",
      "name": "myQueueItem",
      "type": "serviceBusTrigger",
      "direction": "in"
    }
  ]
}

local.settings.json содержит строки подключения к служебной шине и учетную запись хранения, необходимую для локального запуска:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=...",
    "MyServiceBus": "Endpoint=sb://...servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=..."
  }
}

index.js тоже самое, что и в примере:

module.exports = function (context, myQueueItem) {
    context.log('JavaScript queue trigger function processed work item', myQueueItem);
    context.done();
};

РЕДАКТИРОВАТЬ : Это похоже на этот вопрос: Тип привязки 'serviceBusTrigger' не является зарегистрированной ошибкой в ​​функциях Azure c # с основными инструментами 2 .Проблема (и, следовательно, решение) одинаковы.Я нахожу ответ здесь простым для реализации.

1 Ответ

0 голосов
/ 25 апреля 2018

Вы должны установить расширение служебной шины, используя

func extensions install --package Microsoft.Azure.WebJobs.ServiceBus --version 3.0.0-beta5.

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

Все работает на моей стороне (функция js), не стесняйтесь спрашивать, если у вас есть дополнительные вопросы.

...