如何使用Azure函数绑定发送计划的服务总线队列消息?

时间:2017-08-22 04:43:23

标签: node.js azure azureservicebus azure-functions azure-servicebus-queues

我有一个用node.js编写的Azure函数,它使用输出绑定成功地将消息发送到Azure Service Bus Queue。

如何使用绑定语法将预定消息发送到同一个队列?如果可能的话,我宁愿在没有安装node.js sdk的情况下这样做。

binding documentation未提及预定消息。但是,有趣的是this comment已经在函数github问题库中做了几次:

  

至少使用C#& Node.js(以及为什么不在F#中)Service Bus队列   输出已经支持这个例子如果你创建并放置多个   消息例如到IAsyncCollector或创建BrokeredMessage。内   您可以控制预定入队时间的外发留言:

     

outgoingMessage.ScheduledEnqueueTimeUtc = DateTimeOffset.UtcNow.AddSeconds(10)

无论如何,这是我当前的代码,可以立即发送消息:

function.json

{
  "disabled": false,
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "req"
    },
    {
      "type": "http",
      "direction": "out",
      "name": "res"
    },
    {
      "name" : "queueOutput",
      "queueName" : "scheduler",
      "connection" : "AZURE_SERVICEBUS_CONNECTION_STRING",
      "type" : "serviceBus",
      "direction" : "out"
    }
  ]
}

index.js

module.exports = function (context, req) {

  context.log('Scheduler function processed a request.');

  context.bindings.queueOutput = req.body;

  context.res = {
    "status": 200,
    "body": {
      "message": "Successfully sent message to Queue"
    } 
  };

  context.done();

};

1 个答案:

答案 0 :(得分:0)

使用基于时间的触发器语法(CRON调度)怎么样...假设我没有误解这个问题

{
  "name": "function",
  "type": "timerTrigger",
  "direction": "in",
  "schedule": "0 */5 * * * *"
},