如何编写使用C#在项目出现在azure服务总线队列中时可以触发的azure函数?

时间:2016-04-12 22:43:41

标签: azure azure-servicebus-queues azure-functions

新的azure功能预览包含一些C#模板。但是C#没有服务总线队列模板。有一个带有服务总线的节点的触发器模板。但经过仔细检查,它只支持Notification Hubs而不支持服务总线队列。是否甚至可以编写一个只能在项目出现在天蓝色服务总线队列中时触发的天蓝色功能?如果现在不可能,在不久的将来会有这样的模板吗?

感谢。 Raghu /..

2 个答案:

答案 0 :(得分:3)

更新:以下步骤和信息仍然有效,但我们现在在门户网站中有一个" ServiceBusQueueTrigger - C#" 模板,所以不再需要解决方法步骤:)

ServiceBus IS已经支持C#,我们只需要为它添加一个模板(我们很快就会添加)。通常,模板只是起点 - 您可以随时通过添加其他绑定来修改模板,或者从空模板开始并构建您自己的函数。

在我们上传模板之前,您可以从 C#Empty模板开始自行完成此工作。例如,您可以在集成标签上的高级编辑器中输入如下所示的绑定信息:

{
  "bindings": [
    {
      "type": "serviceBusTrigger",
      "name": "message",
      "direction": "in",
      "queueName": "samples-input",
      "connection": "myServiceBus"
    }
  ]
}

确保您的Function App的AppSetting与connection属性的名称相匹配,并包含您的ServiceBus连接字符串。看起来我们目前在ServiceBus的连接字符串选择器上遇到了一些问题(很快也会修复),但你可以使用"功能应用程序设置" /"转到App Service Settings&# 34; /"应用程序设置"添加此应用设置。然后您可以使用相应的功能代码:

using System;
using Microsoft.Azure.WebJobs.Host;

public static void Run(string message, TraceWriter log)
{
    log.Verbose($"C# ServiceBus Queue function processed message: {message}");
}

只要将新消息添加到ServiceBus队列samples-input,就会调用此函数。

答案 1 :(得分:1)

https://azure.microsoft.com/en-us/documentation/articles/functions-reference/,与SB无约束力。 实现这一目标的最佳方式是在(而不是偶然的机会)在产品组中工作,这是在UserVoice上提交您的想法 - https://feedback.azure.com/forums/355860-azure-functions