При интеграции Azure сеансов служебной шины с Azure функциями в Javascript / Typescript: я использую https://www.npmjs.com/package/@azure / служебную шину Мой сценарий:
- Azure Функция X помещает сообщение с сеансом «123» в очередь Azure служебной шины.
- Azure Функция Y имеет триггер в Azure очереди служебной шины, ожидающей новых сообщений в очереди и обрабатывать сообщения согласно sessionId "123".
Мой код:
//SENDER FUNCTION CODE
const sbClient = ServiceBusClient.createFromConnectionString(process.env.AZURE_SERVICE_BUS_CONNECTION_STRING);
const queueClient = sbClient.createQueueClient("testqueue");
const sender = await queueClient.createSender();
await sender.send({
body: req.body.message.text + " - " + new Date().toLocaleTimeString(),
sessionId: "123"
});
//CONSUMER FUNCTION CODE
const sbClient = ServiceBusClient.createFromConnectionString(process.env.AZURE_SERVICE_BUS_CONNECTION_STRING);
const queueClient = sbClient.createQueueClient("testqueue")
const receiver = await queueClient.createReceiver(ReceiveMode.peekLock, {
sessionId: "123"
});
const messages = await receiver.receiveMessages(10);
Я получил следующую ошибку:
System.Private.CoreLib: Exception while executing function: Functions.TestQueueReceiver. System.Private.CoreLib: Result: Failure
Exception: SessionCannotBeLockedError: **Received sessionId 'undefined' does not match the provided sessionId '123'** while creating the receiver '<QUEUENAME-123456789>'.
Stack: SessionCannotBeLockedError: Received sessionId 'undefined' does not match the provided sessionId '123' while creating the receiver '<QUEUENAME-123456789>'.
at Object.translate (PATH\node_modules\@azure\amqp-common\dist\index.js:908:17)
at MessageSession.<anonymous> (PATH\node_modules\@azure\service-bus\dist\index.js:3163:52)
at Generator.next (<anonymous>)
at fulfilled (PATH\node_modules\tslib\tslib.js:110:62)
at process._tickCallback (internal/process/next_tick.js:68:7).
Я уверен, что отправитель AF поместил sessionId при отправке сообщения, но кажется, что sessionId поступает в потребитель Azure Функция, хотя и исследует context.bindingData, я вижу, она ценится.
Есть идеи?