0

我有一个 Azure Functionapp,它处理一些数据并将该数据推送到 Azure 服务总线主题。

我需要在我的 servicebus 主题订阅上启用会话。使用 javascript functionapp API 时,我似乎找不到设置会话 ID 的方法。

这是我的函数应用程序的修改摘录:

module.exports = function (context, streamInput) {
  context.bindings.outputSbMsg = [];
  context.bindings.logMessage = [];

  function push(response) {
      let message = {
          body: CrowdSourceDatum.encode(response).finish()
          , customProperties: {
              protoType: manifest.Type
              , version: manifest.Version
              , id: functionId
              , rootType: manifest.RootType
        }
        , brokerProperties: {
            SessionId: "1"
        }
    context.bindings.outputSbMsg.push(message);
  }

  .......... some magic happens here.

  push(crowdSourceDatum);
  context.done();
} 

但是 sessionId 似乎根本没有设置。关于如何实现这一点的任何想法?

死信错误

消息属性

4

1 回答 1

2

我在我的函数上测试了 sessionid,我可以设置消息的会话 id 属性并在服务总线资源管理器中查看它。这是我的示例代码。

var connectionString = 'servicebus_connectionstring';
var serviceBusService = azure.createServiceBusService(connectionString);

var message = {
    body: '',
    customProperties:
    {
        messagenumber: 0
    },
    brokerProperties:
    {
        SessionId: "1"
    }
};

message.body= 'This is Message #101';
serviceBusService.sendTopicMessage('testtopic', message, function(error)
{
    if (error)
    {
        console.log(error);
    }
});

这是测试结果。

在此处输入图像描述

请确保您在创建主题和订阅时启用了分区和会话。

在此处输入图像描述

于 2017-05-16T06:58:24.887 回答