Триггер служебной шины Azure для приложения-функции с включенным сеансом - Node.js - PullRequest
0 голосов
/ 17 октября 2019

У меня есть функция, которая запускается служебной шиной с включенным сеансом, но я получаю сообщение об ошибке:

Microsoft.Azure.ServiceBus: It is not possible for an entity that requires sessions to create a non-sessionful message receiver

Есть ли способ включить сеансы с приложением nodejs?

Iпопытался отредактировать мой host.json, но это не сработало, SessionHandlerOptions не отображается как свойство для serviceBus ... "Свойство SessionHandlerOptions не разрешено"

{
  "version": "2.0",
  "extensions": {
    "serviceBus": {
      "SessionHandlerOptions": ....

      }
    }
  }
}

enter image description here

Также пытался добавить "isSessionsEnabled": true в function.json, но все равно получаю ту же ошибку.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 18 октября 2019

Это общий вопрос. Функции Azure не поддерживают сеансы служебной шины с момента создания функции Azure. Эта ситуация сохраняется 3-4 года. Несколько месяцев назад появляется пакет nuget для поддержки этого. Для node.js я не могу найти SDK для установки. Если вы используете C#, теперь у него есть решение. Но для node.js я не уверен. Вы можете попробовать новейший SDK, возможно, он сможет это поддержать.

Это функция SDK проблема . Вы можете посмотреть.

0 голосов
/ 18 октября 2019

Итак, через несколько часов и благодаря предложению @BowmanZhu я нашел решение, которое работает и при использовании node.js. Я использую azure-functions-core-tools, поэтому обновите его до последней версии:

npm install -g azure-functions-core-tools@2

. Из корневой карты проекта установите пакет 3.1.1 расширения ServiceBus:

dotnet add package Microsoft.Azure.WebJobs.Extensions.ServiceBus --version 3.1.1 

В файле extensions.csproj вы должны видеть, что ссылка на пакет для этого пакета - 3.1.1

<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.ServiceBus" Version="3.1.1" />

, затем выполните:

func extensions install 

последнее добавление в function.jsonдобавьте привязки:

"isSessionsEnabled": true

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...